内容提要
Next.js 12.1发布了多个新功能,包括按需增量静态再生(Beta)、增强的SWC支持、零配置的Jest插件和更快的代码压缩。自托管改进使Docker镜像缩小约80%。此外,新增了对React 18和服务器组件的支持,提升了开发体验。开发者调查正在进行中,以收集反馈并改进Next.js。
延伸解读
按需ISR:从定时到手动触发
Next.js 12.1 引入按需增量静态再生(Beta),通过 unstable_revalidate() 函数手动清除特定页面的缓存。此前 ISR 依赖 revalidate 时间间隔,所有访客在设定时间内看到相同内容,更新只能等待下次访问触发。现在,当无头 CMS 内容更新或电商元数据变化时,可立即重新验证页面,无需等待。该功能适用于任何支持 next build 的部署平台,在 Vercel 上全球传播约需 300 毫秒。
SWC 工具链:构建与测试加速
Next.js 12.1 扩展了基于 Rust 的 SWC 编译器支持,新增 styled-components、Relay 等常用转换,并推出零配置 Jest 插件 next/jest,自动处理样式、图片导入和环境变量。SWC 的代码压缩速度比 Terser 快 7 倍,已进入候选版本,将在 12.2 成为默认。这些改进旨在提升生产构建速度和本地开发反馈效率。
自托管优化:Docker 镜像缩小约80%
通过启用 experimental.outputStandalone,Next.js 可自动生成仅包含生产必需文件的独立文件夹,使自托管应用的 Docker 镜像缩小约 80%。该文件夹位于 .next/standalone,可独立部署而无需安装 node_modules。此外,官方提供了多环境 Docker 示例,支持根据环境加载不同的 .env 文件,简化了自托管部署流程。
React 18 与服务器组件进展
Next.js 12.1 继续推进 React 18 和服务器组件(Alpha)支持,包括内联服务器组件响应以避免二次请求、改进流式脚本加载以实现部分水合、支持 useId API 以及将 _app 作为服务器组件等。同时,Edge Runtime 允许按页面选择运行时,便于从 Node.js 逐步迁移。这些更新为未来性能优化和架构演进奠定了基础。
Q&A
Next.js 12.1的新功能有哪些?
Next.js 12.1新增了按需增量静态再生、增强的SWC支持、零配置的Jest插件和更快的代码压缩等功能。
什么是按需增量静态再生?
按需增量静态再生允许开发者即时重新验证使用getStaticProps的页面,提供更灵活的缓存管理。
SWC支持的增强具体包括哪些内容?
SWC支持的增强包括对styled-components、Relay等的支持,提升了构建速度和开发体验。
Next.js 12.1如何改善Docker镜像的大小?
Next.js 12.1通过自托管改进,使Docker镜像缩小约80%,便于生产部署。
Next.js 12.1对React 18的支持有哪些提升?
Next.js 12.1新增对React 18和服务器组件的支持,提升了稳定性和开发体验。
如何参与Next.js的开发者调查?
开发者可以通过填写Next.js的开发者调查来提供反馈,帮助改进该框架。