You signed in with another tab or window.Reload to refresh your session.You signed out in another tab or window.Reload to refresh your session.You switched accounts on another tab or window.Reload to refresh your session.Dismiss alert
React Component Caching is a component-level caching library for faster server-side rendering with React 16.
Use any of React's four server-side rendering methods. Rendering isasynchronous.
Cache components using a simple or template strategy.
Choose from three cache implementations (LRU, Redis, or Memcached).
Installation
Using npm:
$ npm install react-component-caching
Usage
In Node rendering server:
Instantiate a cache and pass it to any rendering method (renderToString,renderToStaticMarkup,renderToNodeStream, orrenderToStaticNodeStream) as a second argument. Wherever you would useReactDOM.renderToString, useReactCC.renderToString.
Note: All of these methods are asynchronous, and return a promise. To use them,await the response before rendering
The example above employs a simple caching strategy: a rendered component is saved with its prop values. Each time the component is rendered with different prop values, a separate copy is saved to the cache. If a component is frequently rendered with different prop values, you may prefer to cache a template of the component to save space in the cache. The template strategy stores a version of the component with placeholders (e.g.{{0}},{{1}}) in place of actual prop values.
To create a cache template, add bothcache andtemplatized to the component along with an array of props to templatize. Templatized props should havestring ornumber values.Be aware that templates are not currently supported with therenderToNodeStream orrenderToStaticNodeStream methods.
To use streaming on the server side, use either the renderToStaticNodeStream or renderToNodeStream function. Both streaming option works with caching, but not yet compatible with templatization. To use the streaming functions, simply pass in these 5 arguments:(component: The React component being renderedcache: The component cache objectres: The response object that Express provideshtmlStart: Start of html markup in string formhtmlEnd: End of html markup in string form).The benefit that comes with streaming is faster time to first byte, which translates to faster viewing of page content.
Cache Options
React Component Caching provides its own cache implementation as well as support for Redis and Memcached. Simply create your preferred cache and pass it into one of the rendering methods.
constReactCC=require("react-component-caching");constMemcached=require("memcached");constcache=newMemcached(serverlocation,options);// If using Memcached, make sure to pass in the lifetime of the data (in seconds) as a number.ReactCC.renderToString(<App/>,cache,1000);
API
React Component Caching
React Component Caching gives you access to all four of React 16's server-side rendering methods, as well as additional functionality. Available methods are described below.
ComponentCache
size: (Optional) An integer representing the maximum size (in characters) of the cache. Defaults to 1 million.
Example:
constcache=newReactCC.ComponentCache();
renderToString
component: The React component being rendered
cache: The component cache
memLife: (Only if using Memcached) A number representing the lifetime (in seconds) of each Memcached entry. Defaults to 0.
Example:
ReactCC.renderToString(<App/>,cache);
renderToStaticMarkup
component: The React component being rendered
cache: The component cache
memLife: (Only if using Memcached) An integer representing the lifetime (in seconds) of each Memcached entry. Defaults to 0.
Example:
ReactCC.renderToStaticMarkup(<App/>,cache);
renderToNodeStream
component: The React component being rendered
cache: The component cache object
res: The response object that Express provides
htmlStart: Start of html markup in string form
htmlEnd: End of html markup in string form
memLife: (Only if using Memcached) An integer representing the lifetime (in seconds) of each Memcached entry. Defaults to 0.