React 服務端渲染的流程簡述

2021-08-29 01:36:49 字數 965 閱讀 9787

做 react ssr 有一段時間了, 在正好在這裡分享一下.

使用者第一次請求/重新整理頁面時, 由服務端響應. 伺服器響應的是乙個已經插入了元件文字的模板 ( template with pre-populated component ). 由於響應的頁面已經有元件的 html 文字, 可以省去瀏覽器端首次渲染的工作, 加快首屏顯示速度, seo 友好.

餘後的頁面內的鏈結 ( ) 跳轉皆由 react router 接管.

服務端渲染時, 伺服器和瀏覽器共用一套模板, 一套元件.

兩個入口檔案 (兩個 bundle).

伺服器需要乙個 服務端 bundle, 對應的 webpack 編譯配置需要適配服務端環境 (nodejs commonjs 模組系統).

開發環境下的服務端渲染工作可以和 webpack devserver 協作, 實現開發時服務端渲染的熱載入.

在客戶端入口元件應用 reactdom.hydrate() 替換 reactdom.render()

在服務端使用 reactdomserver.rendertostring() 將元件轉化為字串, 插入模板中, 響應給客戶端.

window.__initial_state__ = <%%-initialstate %>
服務端需要使用 react router 元件.

定義介面: 可以在 routes 檔案內定義用於獲取資料的 api, 也可以在元件內部提供靜態方法來獲取資料的 api.

呼叫介面: 在元件的生命週期函式中呼叫這些 api.

動態渲染

以上, **細節還是比較多的. 使用了 material-ui 的話也需要做相關的配置.

這個 repo 是乙個 react + react router 4 ssr 的 react & react router 4 server side rendering boilerplate

react服務端渲染next

mkdir nextdemo cd nextdemo npm init y 配置package.json scripts 啟動命令 npm run dev 或者yarn dev 啟動命令 yarn dev 或者npm run dev next缺省會自動給我們生成好路由,路由生成規則是在專案的根目錄下...

react服務端渲染框架

客戶端渲染 載入乙個空的html頁面,然後請求乙個打包的js檔案,然後再客戶端執行這個js檔案 動態生成html內容然後插入到dom元素上,在源 查詢中也只能看到空的html文件 沒有任何其他內容 服務端渲染 載入出來的就帶有完整的html文件內容 同時帶有資料 流程 瀏覽器傳送請求 伺服器端執行r...

react服務端渲染(同構)

學習react也有一段時間了,使用react後首頁渲染的速度與seo一直不理想。打算研究一下react神奇服務端渲染。react服務端渲染只能使用nodejs做服務端語言實現前後端同構,在後台對react元件進行解析並生成html字串後返回檢視頁面。後台為什麼可以解析react元件?因為node j...