当谈到为新的 React 项目选择框架时,Next.js是首选-并且已经这样了好几年了。与竞争对手相比,Next.js 在Web 指标方面提供了高性能,因为它专注于服务器端渲染 (SSR)。最初的主要竞争对手Gatsby专注于静态站点生成(SSG)。新的竞争对手Remix提供了与 Next.js 类似的 SSR 优势,但在行业接受度方面仍需迎头赶上。
服务端渲染的需求
但为什么还需要一个框架呢? React 擅长开箱即用的是客户端渲染(CSR)单页应用程序(SPA)。这些提供了出色的网络体验,因为用户可以立即在页面之间导航,而无需等待页面从服务器加载。
SPA 的一大缺点是,用户访问的第一个页面会以 JavaScript 包的形式发送 保加利亚 whatsapp 数据 到浏览器,然后再显示为 HTML。这会对重要的网络指标产生负面影响,例如首次内容绘制(FCP)和总阻塞时间(TBT)。
这两个指标(FCP 和 TBT)都从 SSR 和 SSG 中受益匪浅。第一个请求到达后,SSR 就会在服务器上启动。它在将 React 页面提供给浏览器之前在服务器上以 HTML 格式呈现。这对于动态公共页面(例如天气信息)特别有利,其中可以缓存 HTML 输出并将其传递给不同的用户,从而节省后续请求的时间。 SSG 在为您的网站提供服务之前渲染静态页面,从而完全消除请求响应生命周期中的渲染时间。与 SSR 相比,这可以带来更好的首字节时间。
应该注意的是,静态生成的页面仍然可以通过在加载原始 HTML 信号后向浏览器发送 JavaScript 请求来提供动态内容和交互。对于交互式动态页面,与 SSR 相比,这种组合可能会导致更糟糕的首次输入延迟。
Next.js 的巨大竞争优势在于它能够通过非常直观的界面提供强大的混合 SSR/SSG 方法。它通过将 React 路由器嵌入到基于文件的路由系统中来简化路由,同时保持 React 接口的其余部分完整并为开发人员提供充分的灵活性。
妥协
目前,就市场受欢迎程度而言,Next.js 是明显的赢家(根据 StateOfJS“使用”指标衡量)。
与提供者绑定
Next.js 因难以在 Vercel 以外的任何地方使用而受到严厉批评,Vercel 是 Next.js 运营商 Vercel(公司)拥有的 Next.js 托管解决方案。虽然 Next.js 目前可以配置为与其他托管平台(特别是 Netlify 和 AWS)配合使用,但要了解最新功能,您可能需要与 Vercel 配合使用,这取决于公司提供的定价。