Ich habe auch einige entsprechende Artikel zum serverseitigen Rendern gelesen. Es scheint, dass einige Frameworks auf der Knotenseite initialisiert werden. Ich denke jedoch, dass das allgemeine Front-End-Framework DOM beinhalten muss, der Server jedoch keine DOM-Operationen haben darf. Was ich fragen m?chte ist:
1. Welches Problem l?st das sogenannte serverseitige Rendering?
2. Wie wurde das SEO-Problem gel?st?
3. Was sind die aktuellen L?sungen für die geringe First-Screen-Leistung von Spa-Anwendungen?
閉關(guān)修行中......
對(duì)于 react 的服務(wù)端渲染,簡(jiǎn)單說(shuō)說(shuō)我的理解:
最大的應(yīng)該是解決 seo 的問(wèn)題,其次在于加快 client 渲染的速度。
server-side-rendering(SSR) 簡(jiǎn)單來(lái)說(shuō)就是調(diào)用了 ReactDOM.renderToString
這個(gè)方法,在服務(wù)器端的一個(gè) js 上下文對(duì)組件進(jìn)行渲染,然后返回 html 的標(biāo)簽,這樣,當(dāng) client 端 react 跑的時(shí)候,通過(guò) react 的虛擬 dom 通過(guò)對(duì)比 react-id 進(jìn)行增量更新,也就是如果某個(gè) dom 上面 client 沒(méi)有啥更新的話(huà),就直接拿 server 的結(jié)果,所以說(shuō)在一定程度上加速了 client 的渲染速度。
其次就是 seo 因?yàn)?server 直接返回了 html 的標(biāo)簽,所以即使是爬蟲(chóng),也會(huì)返回真正的有 seo 的標(biāo)簽。這對(duì)一些門(mén)戶(hù)網(wǎng)站非常有用。這樣搜索引擎的爬蟲(chóng)就能爬到網(wǎng)站的關(guān)鍵信息,對(duì)網(wǎng)站排名有所幫助。
SSR 性能的話(huà),一般的解決方法貌似都是通過(guò) cache,github 上面有一些項(xiàng)目,例如electrode-react-ssr-caching
react-ssr-optimization 這些項(xiàng)目都是通過(guò) cache 對(duì) SSR 進(jìn)行優(yōu)化,本質(zhì)上都是通過(guò)對(duì)比 props,進(jìn)行 cache 加快下一次渲染。