2017-06-19 84 views
0

我正在看這個video,並想了解第一次加載頁面時組件的狀態是如何設置的。組件是否已經在服務器端設置了狀態,然後被髮送到客戶端,如HTML 組件在服務器端構建完成,以HTML形式發送到客戶端,然後運行bundle.js來獲取數據?React服務器端渲染狀態如何工作?

大約在視頻中的8分鐘標記,講話人談論窗口狀態需要設置並與React狀態同步。那是什麼?爲什麼需要在窗口上顯示狀態,如果它已經設置在服務器端?是因爲它尚未設置,它是從服務器分開發送的,客戶端組件必須從窗口中抓取它?

+1

這是因爲客戶端的反應也需要這個狀態。 – zerkms

回答

1

當在服務器渲染中使用React時,我們還必須在我們的響應中發送我們的應用程序的狀態,因此客戶端可以使用它作爲初始狀態。這很重要,因爲如果我們在生成HTML之前預加載任何數據,我們希望客戶端也可以訪問這些數據。否則,客戶端生成的標記將與服務器標記不匹配,客戶端將不得不再次加載數據。

將數據發送到客戶端,我們需要:

  • 創建一個新的,新的每個請求作出反應存儲實例; 可選擇派遣一些動作; 拉出存儲狀態; 然後將狀態傳遞給客戶端。 在客戶端,將創建一個新的React存儲並使用服務器提供的狀態進行初始化。

React在服務器端的唯一工作是提供我們應用的初始狀態。

+0

你什麼時候必須使用窗口狀態? – stackjlei

相關問題