React 同構

所謂同構,簡單的說就是客戶端的代碼可以在服務端運行,好處就是能極大的提升首屏時間,避免白屏,另外同構也給SEO提供了很多便利。

React 同構得益于 React 的虛擬 DOM。虛擬 DOM 以對象樹的形式保存在內(nèi)存中,并存在前后端兩種展現(xiàn)形式。

  • 在客戶端上,虛擬 DOM 通過 ReactDOM 的 render 方法渲染到頁面中,形成真實的 dom。

  • 在服務端上,React 提供了另外兩個方法: ReactDOMServer.renderToString 和 ReactDOMServer.renderToStaticMarkup 將虛擬 DOM 渲染為 HTML 字符串。

在服務端通過 ReactDOMServer.renderToString 方法將虛擬 DOM 渲染為 HTML 字符串,到客戶端時,React 只需要做一些事件綁定等操作就可以了。

在這一整套流程中,保證 DOM 結構的一致性是至關重要的一點。 React 通過 data-react-checksum來檢測一致性,即在服務端產(chǎn)生 HTML 字符串的時候會額外的計算一個 d

網(wǎng)友評論