The Wayback Machine - https://web.archive.org/web/20231217045248/https://github.com/alexnm/react-ssr
Skip to content

alexnm/react-ssr

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
src
August 23, 2019 08:20
March 23, 2018 21:36
March 24, 2018 18:24
March 23, 2018 23:34
March 23, 2018 21:19
February 5, 2023 18:02
July 14, 2019 18:15
July 14, 2019 18:15

[DEPRECATED] React Server Side Rendering

This is no longer the recommended way to approach server side rendering with React. For an all-round solution look at a starter with next.js or remix

Getting started

Clone the repo with git clone https://github.com/alexnm/react-ssr

Install dependencies with npm i

Run dev mode with npm run dev

Now open the browser and navigate to http://localhost:2048 and you get your server rendered React app. You can inspect the page source and see that the html coming from your local server has all the nodes defined in the React app.

A few notes

  • I tried to limit the complexity of the entire app to focus on the server side rendering part. Don't take the same shortcuts in your production app!
  • We're starting the server with the index.js file which is in the root folder. This file loads the babel-register and sets up the babel plugins needed to run JSX and ESModules on the server.
  • The node server needs to handle the static files from the dist folder.
  • The entry point of the bundle is called client.js because it's the only part of our application that is not used for the server render.

Navigating through the different steps

Understand the different parts of server side rendering by going through each tag:

In depth explanations

Read more about implementing server side rendering step by step. Feedback is more than welcome!