首页  >  文章  >  web前端  >  NextJs 稳定版本来了:有什么新功能?

NextJs 稳定版本来了:有什么新功能?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-23 06:28:01202浏览

NextJs Stable Version Is Here : What

Next.js 刚刚投下了一个改变游戏规则的重磅炸弹,在 Next.js 大会之前发布了 Next.js 15 的稳定版本——这绝对是疯狂的! ?

以下是 Next.js 15 中包含的一些令人兴奋的新更新和功能:

  • 使用 @next/codemod CLI 改进升级:Next.js 15 包含一个新的 codemod CLI,可以更轻松地升级到最新的 Next.js 和 React 版本。 CLI 更新依赖项、显示可用的代码模块并提供应用指南。
  • 异步请求 API:依赖于请求特定数据(例如标头、cookie、params 和 searchParams)的 API 已转换为异步。此更改会影响 cookie、标头、draftMode、params(在各种上下文中)和 searchParams 等 API。这是一个重大更改,但可以使用 codemod 来帮助迁移。
  • 缓存语义的更改:Next.js 15 更改了获取请求、GET 路由处理程序和客户端路由器缓存的默认缓存行为。现在默认情况下这些是不缓存的。如果需要,您可以选择缓存。
    • 获取请求现在使用 no-store 作为默认缓存选项,这意味着默认情况下不会缓存它们。您可以通过将缓存选项设置为强制缓存来选择缓存。
    • GET 路由处理程序默认也不被缓存。您可以选择使用静态路由配置选项进行缓存。
    • 默认情况下,客户端路由器缓存不再缓存页面组件。您可以通过在 next.config.ts 中设置 staleTime 来恢复到以前的行为。
  • React 19 支持:Next.js 15 支持 React 19,包括实验性的 React 编译器。
    • App Router 使用 React 19 RC,而 Pages Router 则保持对 React 18 的向后兼容性。由于潜在的不一致,不建议在同一应用程序中使用 React 18 作为页面路由器和 React 19 作为应用程序路由器。
    • React 编译器旨在通过减少手动记忆来简化代码,但它仍处于实验阶段,可能会导致构建时间变慢。
  • 稳定的 Turbopack 开发:Turbopack,新的基于 Rust 的构建系统,现在在开发模式下稳定(next dev --turbo)。它在服务器启动、快速刷新和初始路由编译方面提供了显着的性能改进。
  • 静态路由指示器:这个新的视觉指示器有助于在开发过程中识别静态和动态路由。
  • unstable_after API:unstable_after API 允许在响应完成流式传输后执行代码,这对于不需要阻止用户的任务(例如日志记录和分析)特别有用。
  • instrumentation.js API:该 API 允许开发者监控 Next.js 服务器生命周期事件,这有助于性能跟踪和错误分析。
  • 使用
    对表单进行增强组件
    :新的
    ;组件通过预取、客户端导航和渐进增强等功能简化了表单处理。
  • next.config.ts 中的 TypeScript 支持:Next.js 15 支持 TypeScript next.config.ts 文件,为配置选项提供类型安全和自动完成功能。
  • 自托管改进:Next.js 15 为自托管提供了对 Cache-Control 标头的更多控制,通过自动使用 Sharp 简化了图像优化,并包含有关自托管的演示和教程视频.
  • 增强的服务器操作安全性:Next.js 现在消除了构建过程中未使用的服务器操作,并利用不可预测的 ID 进行客户端引用,从而增强了安全性。
  • 捆绑外部包:Next.js 15 提供了更一致的配置选项,用于跨应用程序和页面路由器捆绑外部包。 serverExternalPackages 选项允许统一管理。
  • ESLint 9 支持:Next.js 15 引入了对 ESLint 9 的支持,同时保持与 ESLint 8 的向后兼容性。更新还包括在下一个 lint 中删除已弃用的选项以及升级到 eslint-plugin-react-挂钩到版本 5.0.0。
  • 开发和构建改进
    • 改进了服务器组件热模块替换 (HMR),以增强本地开发性能。
    • 通过优化的渲染流程和工作人员之间共享的获取缓存,App Router 中的静态生成速度更快。
    • 为高级用例引入实验性静态生成控制,但需要谨慎,因为它们可能会导致资源消耗增加。
  • 杂项
    • 跨不同领域的突破性更改和改进,例如下一个/图像、中间件、下一个/字体、缓存、配置选项、速度洞察、站点地图、动态路线、重新验证等等。
    • 元数据处理、tree-shaking、并行路由、错误处理、预取和其他几个方面的总体改进。

问题出现了,“Next.js 15 版本如何解决服务器端功能无意暴露的问题?”

Next.js 15 版本引入了两项增强功能,以解决服务器端功能无意暴露的问题,特别是服务器操作:

  • 死代码消除:应用程序中未使用的服务器操作将在下一个构建过程中自动删除。这可以防止他们将自己的 ID 暴露给客户端 JavaScript 包并创建公共端点。
  • 安全操作 ID:Next.js 15 为服务器操作生成不可猜测的、不确定的 ID,使攻击者很难猜测并直接访问它们。这些 ID 会在构建之间定期重新计算,以进一步增强安全性。

需要注意的是,这些措施并不能完全消除服务器操作暴露的风险。开发人员仍应将服务器操作视为公共 HTTP 端点,并实施适当的安全措施来保护敏感数据和功能。

以上是NextJs 稳定版本来了:有什么新功能?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn