Next.js
網(wǎng)站開發(fā)是一個(gè)基于 React 的框架,為這個(gè)問題提供了解決方案。它承諾使用一組易于使用的功能(包括預(yù)渲染)來提高網(wǎng)站的性能??紤]到開發(fā)者社區(qū)在框架發(fā)布后的短時(shí)間內(nèi)蜂擁而至,可以肯定地說 Next 毫無保留地兌現(xiàn)了這一承諾。
盡管像 React 這樣的現(xiàn)代基于 Javascript 的前端框架幫助我們開發(fā)了強(qiáng)大的動(dòng)態(tài)網(wǎng)站,但它們有一個(gè)主要缺點(diǎn):客戶端必須等到所有 Javascript 代碼加載后才能呈現(xiàn)頁(yè)面并向用戶顯示內(nèi)容。由于頁(yè)面的加載速度會(huì)顯著影響其用戶體驗(yàn)和搜索引擎排名,這已成為 Web 開發(fā)中的主要問題。
與 React 這樣的框架相比,Next.js 最突出的特性是預(yù)渲染。如上所述,在接收到 Javascript 代碼后在客戶端渲染網(wǎng)頁(yè)是一個(gè)緩慢的過程。Next 通過向客戶端發(fā)送每個(gè)頁(yè)面的預(yù)渲染版本來解決這個(gè)問題。它使用三種類型的預(yù)渲染。他們是:靜態(tài)站點(diǎn)生成、服務(wù)端渲染、增量靜態(tài)再生。
雖然靜態(tài)站點(diǎn)生成最適合構(gòu)建靜態(tài)網(wǎng)頁(yè),但服務(wù)器端渲染適合具有動(dòng)態(tài)內(nèi)容的頁(yè)面。Next 的特殊之處在于它允許您分別決定為每個(gè)網(wǎng)頁(yè)使用哪種渲染類型。除了預(yù)渲染之外,Next 還提供了一組精心設(shè)計(jì)的功能來簡(jiǎn)化開發(fā)過程,如下所示。
自動(dòng)打包和代碼拆分:與在 React 中必須設(shè)置 Webpack 以手動(dòng)打包代碼不同,Next.js 會(huì)使用 Webpack 自動(dòng)打包代碼。它還支持基于單獨(dú)路由和動(dòng)態(tài)導(dǎo)入的代碼拆分。它減少了網(wǎng)頁(yè)和動(dòng)態(tài)組件的加載時(shí)間。= 圖像優(yōu)化:Next 原生支持按需調(diào)整圖像大小和優(yōu)化圖像。您可以將其與默認(rèn)的延遲加載選項(xiàng)配對(duì)以獲得最佳性能。快速刷新:當(dāng)開發(fā)過程中代碼發(fā)生變化時(shí),立即重新渲染組件。