Loading...
Loading...
Install and set up @data-client/react or @data-client/vue in a project. Detects project type (NextJS, Expo, React Native, Vue, plain React) and protocol (REST, GraphQL, custom), then hands off to protocol-specific setup skills.
npx skill4agent add reactive/data-client data-client-setupyarn.lockyarn addpnpm-lock.yamlpnpm addpackage-lock.jsonbun.lockbnpm installbun addpackage.json| Check | Project Type |
|---|---|
| NextJS |
| Expo |
| Vue |
| React Native |
| Plain React |
fetch()/api//users/axioskygotsuperagentpackage.jsonapi.tsclient.tsservices/*.ts/users/:id/posts/:postId/commentsmethod: 'GET'method: 'POST'.get(.post(@apollo/clientgraphql-requesturqlgraphql-tagpackage.json.graphql.gqlquery {mutation {subscription {/graphql| Framework | Core Package |
|---|---|
| React (all) | |
| Vue | |
npm install @data-client/react && npm install -D @data-client/test
yarn add @data-client/react && yarn add -D @data-client/test
pnpm add @data-client/react && pnpm add -D @data-client/testnpm install @data-client/vue
yarn add @data-client/vue
pnpm add @data-client/vueapp/layout.tsximport { DataProvider } from '@data-client/react/nextjs';
export default function RootLayout({ children }) {
return (
<html>
<DataProvider>
<body>
{children}
</body>
</DataProvider>
</html>
);
}@data-client/react/nextjsapp/_layout.tsximport { Stack } from 'expo-router';
import { DataProvider } from '@data-client/react';
export default function RootLayout() {
return (
<DataProvider>
<Stack>
<Stack.Screen name="index" />
</Stack>
</DataProvider>
);
}index.tsximport { DataProvider } from '@data-client/react';
import { AppRegistry } from 'react-native';
const Root = () => (
<DataProvider>
<App />
</DataProvider>
);
AppRegistry.registerComponent('MyApp', () => Root);index.tsxmain.tsxsrc/index.tsximport { DataProvider } from '@data-client/react';
import ReactDOM from 'react-dom/client';
ReactDOM.createRoot(document.getElementById('root')!).render(
<DataProvider>
<App />
</DataProvider>,
);main.tsimport { createApp } from 'vue';
import { DataClientPlugin } from '@data-client/vue';
import App from './App.vue';
const app = createApp(App);
app.use(DataClientPlugin, {
// optional overrides
// managers: getDefaultManagers(),
// initialState,
// Controller,
// gcPolicy,
});
app.mount('#app');@data-client/restBaseEndpointRestEndpoint@data-client/graphqlGQLEndpoint@data-client/endpointnew Endpoint()package.json@data-client/react/nextjsimport { DataProvider } from '@data-client/react';import { DataProvider } from '@data-client/react/nextjs';DataProviderEntityuseSuspenseuseQueryuseController