一. 前言
當我們選擇使用 Node+React 的技術棧開發 Web 時,React 提供了一種優雅的方式實現服務器渲染。使用 React 實現服務器渲染有以下好處:
1. 利于 SEO:React 服務器渲染的方案使你的頁面在一開始就有一個 HTML DOM 結構,方便 Google 等搜索引擎的爬蟲能爬到網頁的內容。
2. 提高首屏渲染的速度:服務器直接返回一個填滿數據的 HTML,而不是在請求了 HTML 后還需要異步請求首屏數據。
3. 前后端都可以使用 js
二. 神奇的 renderToString 和 renderToStaticMarkup
有兩個神奇的 React API 都可以實現 React 服務器渲染:renderToString 和 renderToStaticMarkup。renderToString 和 renderToStaticMarkup 的主要作用都是將 React Component 轉化為 HTML 的字符串。這兩個函數都屬于 react-dom(react-dom/server) 包,都接受一個 React Component 參數,返回一個 String。
也許你會奇怪為什么會有兩個用于服務器渲染的函數,其實這兩個函數是有區別的: