Next.js 13.5 正式发布,速度大幅提升!

这篇具有很好参考价值的文章主要介绍了Next.js 13.5 正式发布,速度大幅提升!。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

9 月 19 日,Next.js 13.5 正式发布,该版本通过以下方式提高了本地开发性能和可靠性:

  • 本地服务器启动速度提高 22%:使用App和Pages Router可以更快地进行迭代

  • HMR(快速刷新)速度提高 29%:在保存更改时进行更快的迭代

  • 内存使用量减少 40%:在运行next start 时测量

  • 优化的包导入:使用流行的图标和组件库时进行更快的更新

  • next/image 改进:支持<picture>标签、暗模式等

  • 修复了超过 438 个错误!

改善启动和快速刷新时间

App Router 的采用在持续增加,根据 HTTP Archive 对前1000万个网站进行的统计数据来看,其增长速度达到了每月 80%

image.png

自 Next.js 13.4 版本以来,Next.js 团队的重点一直是改进 App Router 应用的性能和可靠性。将13.4与13.5版本进行比较,在一个新的应用上,可以看到以下改进:

  • 本地服务器启动速度提高 22%

  • HMR(快速刷新)速度提高 29%

  • 内存使用量减少 40%

通过以下优化方法实现了这种性能提升:

  • 通过缓存或减少慢速操作来减少工作量

  • 优化昂贵的文件系统操作

  • 在编译过程中实现更好的增量树遍历

  • 将不必要的阻塞同步调用改为懒加载

  • 自动配置大型图标库

Next.js 用户 Hanford 在他们的测试中报告了其编译速度提升 87-92%!

image.png

在继续迭代和改进当前打包工具性能的同时,Next.js 团队还在开发 Turbopack(beta)以进一步提高性能。在13.5版本中,next dev --turbo现在支持更多功能。

优化的包导入

此版本对包导入进行了令人兴奋的突破,改善了在使用大型图标或组件库以及其他重新导出了数百或数千个模块的依赖项时的本地开发性能和生产冷启动速度。

之前,添加了modularizeImports的支持,使开发者能够配置在使用这些库时如何解析导入。在13.5版本中,用optimizePackageImports替代了这个选项,它不需要指定导入映射,而是会自动优化导入。

@mui/icons-material@mui/materialdate-fnslodashlodash-esramdareact-bootstrap@headlessui/react@heroicons/react和lucide-react等库现在都可以自动优化,只加载实际使用的模块,同时方便编写带有很多命名导出的导入语句。

next/image 改进

基于社区的反馈,此版本添加了一个新的实验性函数unstable_getImgProps(),以支持不直接使用<Image>组件的高级用例,包括:

  • 处理background-imageimage-set

  • 使用canvas的context.drawImage()new Image()时进行操作

  • 使用<picture>媒体查询来实现艺术方向或明/暗模式图片

  • 利用<picture>元素的媒体查询功能,实现明/暗模式图片的切换。

import { unstable_getImgProps as getImgProps } from 'next/image';

 

export default function Page() {

  const common = { alt: 'Hero', width: 800, height: 400 };

  const {

    props: { srcSet: dark },

  } = getImgProps({ ...common, src: '/dark.png' });

  const {

    props: { srcSet: light, ...rest },

  } = getImgProps({ ...common, src: '/light.png' });

 

  return (

    <picture>

      <source media="(prefers-color-scheme: dark)" srcSet={dark} />

      <source media="(prefers-color-scheme: light)" srcSet={light} />

      <img {...rest} />

    </picture>

  );

}

此外,现在placeholder属性支持提供任意的data:image/作为占位图像,这些图像不会被模糊处理。

其他改进

自从13.4.0版本以来,我修复了超过438个错误,并进行了各种改进,包括:

  • [文档] 关于表单和变异的新文档

  • [文档] 关于服务端和客户端组件的新文档

  • [文档] 关于内容安全策略和非ces的新文档

  • [文档] 关于缓存和重新验证的新文档

  • [功能] 在页面路由器中增加了对next/navigation中的useParamsuseSearchParams的支持,以便逐步采用

  • [功能] 在router.push / router.replace上支持scroll: false

  • [功能] 在next/link上支持scroll={false}

  • [功能] 开发环境支持HTTPS:next dev --experimental-https

  • [功能] 增加了对cookies().has()的支持

  • [功能] 增加了对IPv6主机名的支持

  • [功能] App Router现在支持Yarn PnP

  • [功能] 服务器操作中添加了对redirect()的支持

  • [功能] 通过创建项目使用Bun的支持:bunx create-next-app

  • [功能] 中间件和边缘运行时中的草稿模式支持

  • [功能] 现在中间件中支持cookies()headers()

  • [功能] Metadata API现在在Twitter卡片中支持summary_large_image

  • [功能] RedirectType现在从next/navigation导出

  • [功能] 添加了Playwright的实验性测试模式

  • [改进] 重构了next start,能够处理比之前多达1062%的请求量

  • [改进] 优化了Next.js内部以提高冷启动性能(速度提升高达40%,在Vercel上测试)

  • [改进] 对App Router增强了Jest支持

  • [改进] 重新设计了next dev的输出

  • [改进] 服务端操作现在与完全静态路由一起工作(包括使用ISR重新验证数据)

  • [改进] 服务端操作不再阻止路由之间的导航

  • [改进] 服务端操作不能再触发多个并发操作

  • [改进] 调用redirect()的服务端操作现在将其推入历史堆栈而不是替换当前条目,以确保返回按钮正常工作

  • [改进] 服务端操作为防止浏览器缓存添加了no-cacheno-store cache-control

  • [改进] 修复了导航后可能调用两次服务端操作的错误

  • [改进] 提高了对具有服务端组件的Emotion CSS的支持

  • [改进] 支持scroll-behavior: smooth用于哈希URL更改

  • [改进] 在所有浏览器中添加了Array.prototype.at的Polyfill

  • [改进] 修复了next dev缓存处理多个并行请求时可能发生的竞争条件

  • [改进] 控制台中的fetch输出现在显示跳过缓存的请求(缓存:SKIP)

  • [改进] usePathname现在正确地去除了basePath

  • [改进] next/image现在在App Router中正确地预加载图像

  • [改进] not-found不再两次渲染根布局

  • [改进] 现在可以克隆NextRequest(即new NextRequest(request)

  • [改进] app/children/page.tsx现在正确地处理文字/children路由

  • [改进] 内容安全策略现在支持预初始化脚本的nonce

  • [改进] 使用next/navigation中的重定向时现在支持basePath

  • [改进] 在Static Export中使用不受支持功能时改进了错误消息

  • [改进] 改进了递归readdir实现(速度提高了约3倍)

  • [改进] 修复了动态路由段中fallback:false之前引起的挂起请求问题

  • [改进] 修复了在请求已被取消时将信号传递给重新验证请求导致请求失败的错误

  • [改进] 删除了404页面上的fetch轮询,改为使用websocket事件,避免在运行next dev时不必要的重新加载

  • [改进] performance.measure不再会导致水合不匹配

  • [改进] 修复了在编辑pages/_app时可能发生意外的完全重新加载的情况

  • [改进] ImageResponse现在扩展自Response,以改善类型检查

  • [改进] 在next build中没有页面输出时,不再显示pages

  • [改进] 修复了在<Link>中忽略skipTrailingSlashRedirect的问题

  • [改进] 修复了开发模式下动态元数据路由重复的问题

Next.js 13.5 正式发布,速度大幅提升!文章来源地址https://www.toymoban.com/news/detail-710076.html

到了这里,关于Next.js 13.5 正式发布,速度大幅提升!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 大幅提升iOS编译速度的cocoapods二进制化插件介绍

    驾校一点通iOS项目是采用是cocoapods来管理组件的,又经过多年的组件化发展,目前组件已经达到了120+的数量。在这种组件规模下,主工程的打包时间也从最开始的几分钟增加到十几分钟(M1)、二十几分钟(Intel)。而且在频繁切换分支开发的场景下,每次编译的耗时成了制

    2024年02月08日
    浏览(54)
  • macOS Ventura 13.5beta3(22G5048d)发布

    黑果魏叔 6 月 16 日消息,苹果今日向 Mac 电脑用户推送了 macOS 13.5 开发者预览版 Beta 3 更新(内部版本号:22G5048d),本次更新距离上次发布隔了 15 天。 macOS Ventura  带来了台前调度、连续互通相机、FaceTime 通话接力等功能 。其中,台前调度可让用户在专注于眼前工作的同时

    2024年02月10日
    浏览(37)
  • 大幅提升前端工作效率!Numeral.js数值格式化库来了!

    我们日常开发中,时常会碰到数值格式化操作的场景,今天了不起就为大家分享一款相对比较全面的数值格式化的JS库: Numeral.js Numeral.js 是一个用来对数值进行操作和格式化的 JS 库。可将数字格式化为货币、百分比、时间,甚至是序数词的缩写(比如1st,100th)。 下载到本

    2024年02月03日
    浏览(79)
  • 《实战AI低代码》:普元智能化低代码开发平台发布,结合专有模型大幅提升软件生产力

    在7月6日举办的“低代码+AI”产品战略发布会上,普元智能化低代码开发平台正式发布。该平台融合了普元自主研发的专有模型,同时也接入了多款AI大模型的功能。它提供了一系列低代码产品,包括中间件、业务分析、应用开发、数据中台和业务流程自动化等,旨在简化企业

    2024年02月16日
    浏览(83)
  • 苹果macOS 13.5.2正式发布 修复ImageIO进程

    9 月 8 日消息,苹果今日向 Mac 电脑用户推送了 macOS 13.5.2 更新(内部版本号:22G91),本次更新距离上次发布隔了 21 天。 需要注意的是,因苹果各区域节点服务器配置缓存问题,可能有些地方探测到升级更新的时间略有延迟,一般半小时内,不会太久。 苹果支持页面,macO

    2024年02月09日
    浏览(37)
  • iOS17.2正式版什么时候发布? 13大新功能细节抢先看

    苹果已经发布了针对开发者的iOS 17.2 Beta测试版,而iOS 17.2正式版预计会在2023年12月发,新版本给iPhone带来不少新功能,下面小编就带大家抢先了解iOS 17.2即将带来的13个新功能亮点细节。 1.手记Journal App上线 全新「手记」 Journal App终于要在iOS 17.2更新中正式上线,这是一款能够

    2024年02月05日
    浏览(51)
  • EMCC 13.5 完整安装详细版

    参考文档: Cloud Control Basic Installation Guide 13.5 Overview of the Enterprise Manager Proactive Patch Program (Doc ID 822485.1) Enterprise Manager Cloud Control Management Agent 13.5 Release Update (RU) 19 Bug List (Doc ID 2996590.1) 13.5: How To Upgrade Enterprise Manager 13.5 Cloud Control OMSPatcher Utility to the Latest Version (Doc ID 2809842.1

    2024年04月16日
    浏览(41)
  • 【计算机视觉】中科院发布Fast SAM,精度相当SAM,速度提升了50倍!

    SAM已经成为许多高级任务(如图像分割、图像描述和图像编辑)的基础步骤。然而,其巨大的计算开销限制了其在工业场景中的广泛应用。这种计算开销主要来自于处理高分辨率输入的Transformer架构。 因此,本文提出了一种具有可比性能的加速替代方法。通过将该任务重新定

    2024年02月12日
    浏览(41)
  • flink 13.5 sink elasticsearch-7

    mysql 数据-- flink sql --es mysql flink elasticsearch 5.7.20-log 13.5 7.12.0 官网可以下载包 flink-sql-connector-elasticsearch7_2.11-1.13.6.jar https://nightlies.apache.org/flink/flink-docs-release-1.13/docs/connectors/table/elasticsearch/

    2024年02月14日
    浏览(39)
  • macOS Ventura 13.6.6 (22G630) 正式版发布,ISO、IPSW、PKG 下载

    macOS Ventura 13.6.6 (22G630) 正式版发布,ISO、IPSW、PKG 下载 3 月 26 日凌晨,macOS Sonoma 14.4.1 发布,同时带来了 macOS Ventru 13.6.6 安全更新。 macOS Ventura 13.6 及更新版本,如无特殊说明皆为安全更新,不再赘述。 请访问原文链接:https://sysin.org/blog/macOS-Ventura/,查看最新版。原创作品,

    2024年04月10日
    浏览(75)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包