Next.js 14.1

Next.js 14.1

💡 原文英文,约1900词,阅读约需7分钟。
📝

内容提要

Next.js 14.1 更新了开发者体验,改进了自托管、Turbopack 性能和错误信息,新增支持并行和拦截路由,优化了图像组件,提升了缓存处理能力,并简化了原生历史 API 的使用。

🔎

延伸解读

自托管能力增强:自定义缓存处理器

Next.js 14.1 稳定了自定义缓存处理器,允许在自托管时替换默认的内存缓存。对于使用 Kubernetes 等容器编排的平台,每个 Pod 都有独立缓存副本,可能导致数据不一致。通过配置 cacheHandler,可以将缓存保存到 Redis 或 Memcached 等外部存储,确保所有 Pod 共享同一份缓存,提升应用的一致性和可靠性。

Turbopack 性能提升与未来计划

Turbopack 在开发环境中表现显著:在 vercel.com 上,本地服务器启动速度提升高达 76.7%,Fast Refresh 代码更新速度提升 96.3%,初始路由编译速度提升 45.8%。目前 Turbopack 使用内存缓存,重启开发服务器后缓存不会保留。下一步将引入磁盘缓存,以进一步优化性能。

路由功能改进:并行与拦截路由

Next.js 14.1 对并行和拦截路由进行了 20 项改进,包括支持 catch-all 路由和 Server Actions。并行路由允许在同一布局中同时或条件渲染多个页面,适用于仪表盘等动态区域;拦截路由可在当前布局中加载其他部分的路由,例如在 Feed 中点击照片时以模态框展示,同时屏蔽 URL。这些改进基于用户反馈,提升了复杂路由场景的可靠性。

图像组件与原生历史 API 支持

next/image 新增 getImageProps() 方法,支持 <picture> 标签、艺术方向以及亮暗模式图片切换,方便实现背景图、canvas 绘制等高级用例。同时,App Router 现在允许使用原生 pushState 和 replaceState 方法更新浏览器历史记录,无需重新加载页面,并能与 usePathname 和 useSearchParams 同步,适合保存筛选、排序等状态。

❓

Q&A

Next.js 14.1 的主要更新内容是什么?

Next.js 14.1 更新了开发者体验,改进了自托管、Turbopack 性能和错误信息,新增支持并行和拦截路由,优化了图像组件,提升了缓存处理能力,并简化了原生历史 API 的使用。

Turbopack 在 Next.js 14.1 中有哪些改进?

Turbopack 通过 5,600 个测试提升了可靠性和性能,初始编译时间和快速刷新时间显著加快。

如何在 Next.js 14.1 中使用并行和拦截路由?

Next.js 14.1 支持并行和拦截路由,允许同时或有条件地在同一布局中渲染多个页面,适用于动态应用的复杂路由模式。

Next.js 14.1 如何优化图像组件?

图像组件现在支持 <picture> 标签和艺术方向,优化了暗模式支持。

Next.js 14.1 中的缓存处理能力有什么提升?

缓存处理能力得到提升,允许使用自定义缓存处理器,确保在容器编排平台上各个副本的一致性。

如何在 Next.js 14.1 中使用原生历史 API?

Next.js 14.1 允许使用原生的 pushState 和 replaceState 方法更新浏览器历史记录,而无需重新加载页面。

🏷️

标签

➡️

继续阅读