關(guān)於服務(wù)端渲染我也看過一些對應(yīng)的文章,似乎就是將一些框架在node端執(zhí)行初始化。但我在想,一般前端框架肯定是要涉及dom的,但是服務(wù)端肯定是沒dom操作的。我想問的是那:
1.所謂的服務(wù)端渲染是解決了什麼問題?
2.seo的問題是如何被解決了?
3.spa應(yīng)用的首屏效能低目前有一些什麼解決策略?
閉關(guān)修行中......
對於 react 的服務(wù)端渲染,簡單說說我的理解:
最大的應(yīng)該是解決 seo 的問題,其次在於加快 client 渲染的速度。
server-side-rendering(SSR) 簡單來說就是呼叫了ReactDOM.renderToString
這個方法,在伺服器端的一個js 上下文對元件進行渲染,然後返回html 的標(biāo)籤,這樣,當(dāng)client 端react 跑的時候,透過react的虛擬dom 透過比較react-id 進行增量更新,也就是如果某個dom 上面client 沒有啥更新的話,就直接拿server 的結(jié)果,所以說在一定程度上加速了client 的渲染速度。
其次是 seo 因為 server 直接回傳了 html 的標(biāo)籤,所以即使是爬蟲,也會回到真正的有 seo 的標(biāo)籤。這對一些入口網(wǎng)站非常有用。這樣搜尋引擎的爬蟲就能爬到網(wǎng)站的關(guān)鍵訊息,對網(wǎng)站排名有所幫助。
SSR 性能的話,一般的解決方法似乎都是透過cache,github 上面有一些項目,例如electrode-react-ssr-caching
react-ssr-optimization 這些項目都是透過cache 對SSR 進行最佳化,本質(zhì)上都是透過比較props,進行cache 加快下一次渲染。