KneeJerk
is a minimal utility for server side React rendering. KneeJerk
is server framework agnostic. You simply pass in a react-router
configuration and URL, and KneeJerk
renders the HTML using react-router
. You can optionally pass in a root component to wrap the router output in order to achieve full page rendering.
const KneeJerk = require('kneejerk');
KneeJerk({
root: require('your-html-wrapper.jsx'),
routes: require('your-routes-file.jsx'),
location: '/dashboard'
}, (err, results) => {
reply(results.markup);
});
KneeJerk
exports a single function, described below.
- Arguments
options
(object) - A configuration object supporting the following keys.location
(string) - The URL path to match in the react-router. Required.routes
(object) - The routes configuration passed to the react-router.render
(string) - The react-dom rendering function. This can be set tonull
to disable rendering. Defaults to'renderToStaticMarkup'
.root
(function) - A react component used to wrap the rendered output. This is used to create a complete server rendered page. This can be explicitly set tonull
to prevent adding a wrapper. Defaults tonull
.rootDoctype
(string) - ADOCTYPE
to prepend to theroot
rendering. Defaults to'<!DOCTYPE html>'
.rootMarkupProp
(string) - The property named used to pass rendered markup to theroot
component for wrapping. Defaults to'markup'
.
callback
(function) - A callback function receiving the following arguments.err
(object) - ABoom
error representing any problem that occurs. If no match is made by the router, this will contain aBoom
404 error. This will benull
if no error occurs.results
(object) - An object containing the following keys.redirectLocation
(object) - An object containing information about a potential redirection. This comes directly from the react-router output.renderProps
(object) - An object containing the props you should pass to the routing context. This comes directly from the react-router output.markup
(string) - The rendered output of the matched route, or theroot
rendering if one was provided. If there is no rendered output for any reason, this will benull
.
- Returns
- Nothing. See arguments passed to
callback
.
- Nothing. See arguments passed to