- NPM
- Yarn
- pnpm
- esm.sh
yarn add @data-client/react @data-client/test @data-client/rest
npm install --save @data-client/react @data-client/test @data-client/rest
pnpm add @data-client/react @data-client/test @data-client/rest
<script type="module">
import * from 'https://esm.sh/@data-client/react';
import * from 'https://esm.sh/@data-client/test';
import * from 'https://esm.sh/@data-client/rest';
</script>
Add provider at top-level component
- Web
- React Native
- NextJS
- Expo
- Anansi
import { DataProvider } from '@data-client/react';
import ReactDOM from 'react-dom';
ReactDOM.createRoot(document.body).render(
<DataProvider>
<App />
</DataProvider>,
);
Alternatively integrate state with redux
import { DataProvider } from '@data-client/react';
import { AppRegistry } from 'react-native';
const Root = () => (
<DataProvider>
<App />
</DataProvider>
);
AppRegistry.registerComponent('MyApp', () => Root);
Alternatively integrate state with redux
import { DataProvider } from '@data-client/react/nextjs';
export default function RootLayout({ children }) {
return (
<html>
<body>
<DataProvider>{children}</DataProvider>
</body>
</html>
);
}
import { Stack } from 'expo-router';
import { DataProvider } from '@data-client/react';
export default function RootLayout() {
return (
<DataProvider>
<Stack>
<Stack.Screen name="index" />
</Stack>
</DataProvider>
);
}
Anansi (beta) is a fully composable framework for React development with optional Server Side Rendering.
npx @anansi/cli hatch my-project
Anansi includes Reactive Data Client automatically.
Example
Supported Tools
TypeScript 3.7+
TypeScript is optional, but requires at least version 3.7 and strictNullChecks for full type enforcement.
Older browser support
If your application targets older browsers (a few years or more), be sure to load polyfills. Typically this is done with @babel/preset-env useBuiltIns: 'entry', coupled with importing core-js at the entrypoint of your application.
This ensures only the needed polyfills for your browser support targets are included in your application bundle.
For instance TypeError: Object.hasOwn is not a function
Internet Explorer support
If you see Uncaught TypeError: Class constructor Resource cannot be invoked without 'new'
,
follow the instructions to add legacy browser support to packages
ReactJS 16-19 and React Native
ReactJS 16.2 and above is supported (the one with hooks!). React 18 provides improved Suspense support and features. Both React Native, React Navigation and Expo are supported.
If you have a working project using other React libraries, feel free to share with others in our discussions.