React Router Example: Server Rendering Lazy Routes
November 6, 2015 ยท View on GitHub
React Router has two great features that seem like they might not work well together: server side rendering and code splitting.
This minimal demo shows how to get the benefits of server rendering and partial app loading with lazy routes and webpack's code splitting.
Running
npm install
npm start
open http://localhost:5000
How it works
- Webpack's
require.ensuredefines code splitting points in the app. - We polyfill
require.ensurefor node to just do a normalrequire. - The server renders the app with
matchand the stateless<RoutingContext/>. - When the client JavaScript loads, we use
matchto trigger the split code to load before rendering. If we didn't do that, then the first render would benulland not reuse the server rendered markup. - We render on the client.
- We raise our arms in the air in triumph.