Next.js預(yù)渲染的兩種形式——靜態(tài)生成和服務(wù)端渲染

Two froms of Pre-rendering of Next.js

Next.js有兩種預(yù)渲染形式:靜態(tài)生成(Static Generation)和服務(wù)端渲染(Server-side Rendering)。 不同之處在于他們?yōu)轫撁嫔蒆TML代碼的時(shí)間。

  • 靜態(tài)生成是一種在build階段生成html的預(yù)渲染方式。預(yù)渲染的HTML的代碼會(huì)被每個(gè)request復(fù)用
  • 服務(wù)端渲染是每次請求都生產(chǎn)新HTML

我們在 Next.js 中可以選擇任意一種預(yù)渲染方式,亦或是混合使用——大多數(shù)時(shí)候用靜態(tài)生成,其他用服務(wù)端渲染。

When to Use Static Generation v.s. Server-side Rendering

那我們該如何選擇這兩種渲染方式呢?
任何時(shí)候都推薦使用靜態(tài)生成(with & without data) ,因?yàn)槲覀兊捻撁嬷恍枰猙uild一次并使用CDN,這樣就比使用server-render每個(gè)request都要渲染頁面快得多。

你應(yīng)該問問你自己:“我能在用戶請求前預(yù)渲染這個(gè)頁面嗎?”
如果答案是“可以”,那就使用靜態(tài)生成(static generation)吧

相反,如果你不能在用戶請求前預(yù)渲染這個(gè)頁面,比如這個(gè)頁面需要頻繁的更新數(shù)據(jù),而且頁面內(nèi)容每次都會(huì)隨request變化,那這個(gè)時(shí)候我們就應(yīng)該使用服務(wù)端渲染(Server-Side Rendering),這樣會(huì)慢一些,但是預(yù)渲染的頁面可以實(shí)時(shí)更新。
或者你可以跳過預(yù)渲染,使用客戶端的Javascript來填充數(shù)據(jù)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容