ReactJS單帶殼頁的申請書陣營海量內容和重複使用服務器端呈現
沒有服務器端渲染(SSR),要求重現該問題:
Home.tsx的
ReactJS + WebPack + React-Router
我用約曼發電機aspnet core React項目沒有SSR,禁用在Startup.cs中HotReloading(或可能運行生產模式)部分:
class Home extends React.Component<any, void> { public render() { return <div> <h1>Hello, world!</h1> <p>Welcome to your new single-page application, built with:</p>
結果
服務器端渲染(SSR),要求重現問題:
ReactJS + WebPack + React-Router + SSR
我Startup.cs用約曼發電機aspnet core React項目,終極版和SSR,也被禁止HotReloading(或可以運行生產模式)結果
- 現在更糟糕,因爲我們加載整個網站佈局兩次:第一次在完全渲染HTML,然後裏面
main-client.js
這表明,在默認情況下做出反應沒有差別靜態內容(控制內部的靜態文本)和動態內容(一些有條件的html輸出)之間,因此它把所有的信息放入巨大的JS文件中。
問題2:是否可以給出大約做出反應靜態部分的提示,所以只需要通過一臺服務器,一旦使其從客戶端的Java腳本只留下動態計算/組件消除它?
- 現在更糟糕,因爲我們加載整個網站佈局兩次:第一次在完全渲染HTML,然後裏面
=========================================== =============
它接縫不是所以很多人都知道它,因爲這些問題是在很多樣本內,他們沒有在教程中提到。
現在常用的方法之一是首先加載一個空的應用程序外殼佈局,然後通過客戶端JavaScript加載JSON數據的內容。但是它並沒有解決這些問題,例如對於第一個問題,我們仍然在爲hole應用程序加載一個shell,而對於豐富的佈局,它可能是一個真正巨大的帶有大量空DOM元素的JS文件:
<h1 id="react-hint-for-element-9997">/* here will be header*/</h1>
<h2 id="react-hint-for-element-9998">/* here will be subheader*/</h2>
/*and so on and on */
可以解決與[的WebPack代碼分割] Q1(http://jonathancreamer.com/advanced-webpack-part-2-code-splitting/)。我相信Q2是[inferno](https://github.com/trueadm/inferno)的動機。 – joews
@joews不錯,我還沒有聽說過'inferno'項目,你可以把信息給一個正確的答案 – Artru