Skip to content

Instantly share code, notes, and snippets.

@whilelucky
Last active September 18, 2017 22:29
Show Gist options
  • Save whilelucky/f4d08e0391e015ee295a53ff3ccabafe to your computer and use it in GitHub Desktop.
Save whilelucky/f4d08e0391e015ee295a53ff3ccabafe to your computer and use it in GitHub Desktop.
server-side-rendering
const serverRenderedHtml = async (req, res, renderProps) => {
const store = configureStore();
//call, wait, and set api responses into redux store's state (ghub.io/redux-connect)
await loadOnServer({ ...renderProps, store });
//render the html template
const template = html(
renderToString(
<Provider store={store} key="provider">
<ReduxAsyncConnect {...renderProps} />
</Provider>,
),
store.getState(),
);
res.send(template);
};
const html = (app, initialState) => `
<!doctype html>
<html lang="en">
<head>
<link rel="stylesheet" href="${assets.main.css}">
</head>
<body>
<div id="root">${app}</div>
<script>window.__INITIAL_STATE__ = ${JSON.stringify(initialState)}</script>
<script src="${assets.main.js}"></script>
</body>
</html>
`;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment