Next.js 15 发布候选版

Next.js 15 发布候选版

💡 原文英文,约2100词,阅读约需8分钟。
📝

内容提要

Next.js 15发布候选版现已推出,支持React 19 RC,新增缓存和部分预渲染功能。改进了错误信息和缓存策略,默认不再缓存fetch请求和GET路由处理程序。引入实验性API next/after,允许在响应后执行任务。更新了create-next-app,简化项目创建流程。

🔎

延伸解读

缓存默认行为变更的影响

Next.js 15 将 fetch 请求、GET 路由处理程序和客户端路由缓存的默认行为从缓存改为不缓存。这意味着升级后,现有应用可能因缺少缓存而增加服务器负载和响应时间。开发者需要检查代码中依赖默认缓存的逻辑,并根据需要显式设置 cache: 'force-cache' 或路由段配置来恢复缓存。此变更旨在提供更符合直觉的默认行为,但要求开发者更主动地管理缓存策略。

React 19 升级的注意事项

Next.js 15 RC 支持 React 19 RC,并引入了 React Compiler(实验性)等新特性。但文章指出,部分第三方库可能尚未兼容 React 19,升级时需谨慎评估依赖兼容性。React Compiler 目前仅能通过 Babel 插件使用,可能导致构建时间变慢。此外,最低 React 版本要求已提升至 19 RC,升级前应确保项目依赖满足要求。

实验性功能的采用策略

Next.js 15 引入了部分预渲染(PPR)和 next/after 等实验性功能。PPR 允许通过 experimental_ppr 配置在特定布局和页面中逐步采用,待所有段启用后再全局开启。next/after 则用于在响应完成后执行日志、分析等次要任务,避免阻塞主响应。这些功能需在 next.config.js 中显式启用,适合愿意尝试新特性并承担一定风险的团队。

破坏性变更与升级准备

Next.js 15 包含多项破坏性变更,如移除 next/image 的 squoosh 支持、更改 Content-Disposition 默认值、移除 @next/font 外部包支持等。此外,部分配置选项如 swcMinify 和 missingSuspenseWithCSRBailout 已默认启用并移除旧选项。升级前应查阅升级指南,逐一检查这些变更对现有项目的影响,并测试关键功能以确保平稳迁移。

❓

Q&A

Next.js 15发布候选版有哪些新特性?

Next.js 15发布候选版支持React 19 RC,新增缓存和部分预渲染功能,改进错误信息和缓存策略,并引入实验性API next/after。

Next.js 15的缓存策略有什么变化?

Next.js 15默认不再缓存fetch请求和GET路由处理程序,改为不缓存,用户可以选择手动启用缓存。

如何使用实验性API next/after?

要使用next/after,需在next.config.js中添加experimental.after配置,并在服务器组件中导入该函数以在响应后执行任务。

create-next-app在Next.js 15中有什么更新?

create-next-app更新了设计,并新增了一个提示,询问是否在本地开发中启用Turbopack。

Next.js 15如何改进错误信息?

Next.js 15改进了hydration错误信息,提供了错误源代码和解决建议,帮助开发者更容易定位问题。

Partial Prerendering在Next.js 15中是如何实现的?

Partial Prerendering允许在同一页面上结合静态和动态渲染,开发者可以通过设置experimental_ppr路由配置选项来逐步采用。

🏷️

标签

➡️

继续阅读