Redian新闻
>
Next.js 13提供新的实验性特性,实现App“动态无限制”

Next.js 13提供新的实验性特性,实现App“动态无限制”

公众号新闻

作者 | Bruno Couriol
译者 | 明知山
策划 | 丁晓昀

最近,Next.js 大会介绍了 Next.js 13,一个 React App 框架的最新版本。Next.js 13 希望通过提供创新的特性帮助开发人员开发出“动态无限制”的 App,其中许多特性仍处于 alpha 或 beta 阶段。新特性对编译器、路由和渲染基础设施进行了更新,并改进了组件工具包。

Next.js 团队在最近的主题演讲中解释了 Next.js 最新版本背后的逻辑:

Next.js 最初是一个用于构建动态服务器端渲染网站的 React 框架。在设计 Next.js 时,我们没有针对单页应用进行优化,而是考虑帮助开发团队构建复杂的应用程序。但是,动态总是伴随着许多限制。
动态意味着要以高成本、始终在线的基础设施为代价,需要手动配置和大量的运维。
动态也意味着要同时处理两组运行时 API,在服务器端没有 JS,而浏览器端有 Web 标准 API。
你想要变得动态,但通常只在一个单一的区域,其伸缩性取决于遗留、静态和 CDN 缓存。
今天,我们发布了 Next.js 13,让你们能够实现无限制的动态。

新版本对工具包进行了改进(改进的 Link 组件、新的 Image 组件和新的 @next/font 库)。额外的 alpha/beta 版特性提供了未来的服务器端渲染预览,正如 Vercel 所设想的那样。

新的 Image 组件旨在改善用户体验,采用了本地延迟加载,减少了客户端 JavaScript 交付,没有了布局漂移。在开发者体验方面,新组件力求更容易设置样式和配置。

改进后的 Link 组件不再需要一个锚标记(即)作为子元素。现在,下面的锚链接 Next.js 代码是有效的:

// Next.js 13: `<Link>` always renders `<a>`<Link href="/about">  About</Link>

@next/font(在 beta 版中发布)将自动优化字体(包括自定义字体),并删除外部网络请求,以提高隐私性和性能。文档中提到的细节:

@next/font 包含了内置的自动自托管任意字体文件,你可以在零布局漂移的情况下加载网页字体,这要得益于使用了底层的 size-adjust CSS 属性。

Next.js 13 引入了 Turbopack(在 alpha 版中发布),作为基于 Rust 的 Webpack 替代方案,为开发人员带来数量级的速度改进。与之前的 Parcel 一样,Turbopack 可以增量构建和捆绑源文件。Next.js 团队宣称:

Turbopack 只打包开发所需的最小资产文件,因此启动速度非常快。对于一个包含 3000 个模块的应用程序,Turbopack 启动只需要 1.8 秒,而 Vite 耗时 11.4 秒,Webpack 则需要 16.5 秒。
Turbopack 对 Server Component、TypeScript、JSX、CSS 等都提供了开箱即用的支持。

Vite 的作者尤雨溪最近对 Vite 和 Next/Turbo 进行了基准测试。他发现,当使用类似的配置执行基准测试时,二者的速度是相近的。截至本文发布,Vercel 的基准测试方法和结果也已经发布,纠正了一些错误,但这仍然是一个存在争议的话题。

虽然开发者体验的改善得到了许多开发者的积极评价,但一位开发者仍然指出了可能存在的缺点和局限性:

因为存在一个庞大的 Webpack 插件生态系统,这可能会使现有应用程序的迁移变得非常困难。Vercel 可能需要依靠社区的贡献开发某种插件系统,这可能很困难,因为像我这样的 JavaScript 开发人员愚蠢又懒惰,不愿意学习 Rust。
此外,对于大多数项目来说,带有 esbuild 的 Vite 已经足够快了,它提供了无与伦比的开发者体验。
你还应该知道的是,Vercel 有意希望通过在云端远程缓存构建来赚钱。

Next.js 13 还对路由和渲染基础设施进行了重大更改,其中一些直接与 React 核心团队合作,以便更好地利用 React 的 Server Component、Suspense 和流。文档中提到:

新的路由器支持:

1.布局:在路由之间轻松共享 UI,同时保留状态,避免昂贵的重新渲染。

2.Server Component:将服务器优先作为大多数动态应用程序的默认设置。

3.流:渲染时在 UI 单元中显示即时加载状态和流。

4.数据抓取:async 的 Server Component 和扩展的 fetchAPI 支持组件级抓取。

要了解更多细节,可以查看发布说明。虽然有很多开发者对该版本做出了积极的反应,但一位开发者指出:

与如何使用 Server Component 相关的规则可能不直观,也很难理解。React 本来就有过于复杂的负面名声,我不认为这会有带来什么帮助。在同一个代码库中处理客户端 JS 和 Node 运行时已经有点麻烦了,但在旧范式中,至少两端之间只有一个交互点(getServerSideProps/getStaticProps),而现在可以出现在每个组件边界上。

另一名开发者对一些新特性提出了警告:

Next.js 涵盖了 React 团队正在研究的一些实验性的、还不稳定的 React 特性,比如服务器端组件,或者在这些服务器端组件中支持 async/await。因此,Next.js 也包含了 React 的一些未来的概念。但更为重要的是,我们需要知道我们谈论的是不稳定、尚未完成的 API,它们仍在研究和实现当中。因此,当你尝试在 beta 版的文档中搜索如何使用新的 /app 文件夹和构建 Next.js 应用程序的新方法时,你会发现许多关于特性仍然缺失、未完成、可能发生变更等警告和注释。

Next.js 基于 MIT 开源许可。欢迎开发者为 Next.js GitHub 代码库做出贡献,并遵循 Next.js 贡献指南和行为准则。

原文链接:

https://www.infoq.com/news/2022/11/nextjs-13-released/

声明:本文为InfoQ翻译,未经许可禁止转载。

今日好文推荐

和Rust一样好,编程更安全?三年实践、员工态度反转,英伟达用 SPARK 换掉 C

反转!马斯克正在求被裁工程师复职,尤其是Android和iOS开发

苹果暂停除研发外岗位招聘,市值一夜蒸发7160亿元;腾讯和联通合资公司因为云计算;国美停发工资,要求员工签理解承诺书|Q资讯

阿里巴巴开源下一代云原生网关Higress:基于Envoy,支持Nginx Ingress零成本快速迁移

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
Why Chinese Cinema Is Still Waiting on the Next GenerationPPAP“小智夺冠奖杯”:你也可以成为世界第一的宝可梦大师![注意]美国要求中国入境旅客提供新冠阴性证明!这里死亡68人,进入紧急状态!沉浸式文旅赶追影视级质感,元宇宙时代虚实共生重塑|SFC EVENTS投研社 x NeXT SCENE首个在ImageNet上精度超过80%的二值神经网络BNext问世,-1与+1的五年辛路历程全球自动驾驶规模化落地难?运营服务有望提供新解决方案实验性纪录片的浪潮将流往何处?突发|美国要求中国入境旅客提供新冠阴性证明!这里死亡68人,进入紧急状态!精度超越ConvNeXt的新CNN!HorNet:通过递归门控卷积实现高效高阶的空间信息交互职场成败:成也双塔,败也双塔炒股難1月5日起,赴美中国航班要求登机前提供新冠阴性证明Boost Infinite:仅需 $25/月,无限通话短信,无限高速流量,无限国际通话,支持热点迪拜总领馆关于启用“中国领事”APP“海外公民登记”功能的通知美国务院:“愿为中国提供新冠疫苗以控制疫情”,中方的回应来了倒计时 |「2023提升计划」即将停止招募好未来发布元宇宙APP“少年创境”一周资讯|银保监会称已全面叫停新设网络小贷;预制菜品牌「筷百味」完成数百万元种子轮融资;腾讯推出社交App“喵更”......美国将要求中国入境旅客提供新冠阴性报告,对入境有什么影响?​比双缝干涉实验还恐怖的实验,或许这就是世界的真相!畅游法国(16)-奥尔良之围NeurIPS 2022 | 重振PointNet++雄风!PointNeXt:改进模型训练和缩放策略审视PointNet++金子般的一颗心 - 答谢亮妈蔬法该使馆启用“中国领事”APP“婚姻登记预约”业务!【重磅】从中国赴美须提供新冠检测阴性证明!关注丨英著名学者:中国式现代化为世界提供新理念、新思维和新目标首个在ImageNet上精度超过80%的二值神经网络BNext问世!我们如何使用 Next.js 将 React 加载时间缩短 70%再次试探重要支撑线,NextEra Energy将如何选择?超越ConvNeXt!Conv2Former:用于视觉识别的Transformer风格的ConvNet小透明变身实验大神!吹爆这个保姆级实验protocol!(附13个细胞实验教程)Science:通用流感疫苗有戏!开发出一种针对所有20种已知的流感病毒亚型的实验性mRNA疫苗德国下萨克森州的沃尔芬比特尔不断以中国新发展为世界提供新机遇Webpack落幕?其作者在Next.js 13中带来快700倍的替代品
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。