How you can see in React manual (ReactDOMServer):
If you call ReactDOM.render() on a node that already has this
server-rendered markup, React will preserve it and only attach event
handlers, allowing you to have a very performant first-load
experience.
So does it mean that if I use static index.html in which I just include my react app js file I don’t have to use server-side rendering?
Btw which of react-app architecture better for SEO?
Thanks for you answers!
2
Answers
In theory, it’s true that you can use static index.html. React will try to render the page on the client side and update your html. This has become much easier to do with React 15 as you no longer need to maintain
data-reactid
attributes.Nonetheless, I’d recommend using SSR (server side rendering) because it makes life easier. Granted, it takes effort to set up but it’s beneficial. You also get to make use of server side routing, critical path css, and more.
If you want SEO, universal apps are the way to go. Two excellent architectures are:
Good luck!
Of course. You can certainly use React purely on the client without any need for server rendering. However server side rendering can be beneficial for graceful degradation. It also helps from a usability perspective as your user won’t have to wait for javascript to be downloaded and executed before any content can be shown.
Now search engines have significantly matured in their ability to crawl dynamic pages. However the support for javascript generated content is a work in progress in most engines. As Google Webmasters blog explains:
So from SEO perspective it is still better if you opt for server side rendering.