@minoris/react-serialize
v1.1.1
Published
Provides an idiomatic way to serialize data for rehydration in a universal react application.
Downloads
17
Readme
@minoris/react-serialize
Provides an idiomatic way to serialize data for rehydration in a universal react application.
Installation
$ yarn add @minoris/react-serialize
Usage
On the server, the <Serializer />
component will serialize whatever you pass as it's data
prop.
// in your server renderer
import {Serializer} from '@minoris/react-serialize';
...
const apolloState = getDatafromTree(appMarkup)
const markup = react.renderToString(
<React.Fragment>
{appMarkup}
<Serializer id="apollo-data" data={apolloState}>
</React.Fragment>
);
Then on the client, you can use getSerialized
to fetch that data out of the DOM and initialize whatever you need.
// when you are rehydrating on the client
import {getSerialized} from '@minoris/react-serialize';
import ApolloClient from 'apollo-client';
...
const {data: initialApolloData} = getSerialized('apollo-data');
const client = new ApolloClient({
...myConfig,
cache: cache.restore(initialApolloData),
});