写点什么

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

  • 2022-11-23
    北京
  • 本文字数:2008 字

    阅读完需:约 7 分钟

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

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 组件不再需要锚标记(即<a>)作为子元素。现在,下面的锚链接 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。

 

此外,对于大多数项目来说,带有esbuildVite已经足够快了,它提供了无与伦比的体验。

 

你还应该知道的是,Vercel 有意希望通过在云端远程缓存构建来赚钱。

 

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

 

新的路由器支持。

 

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/


相关阅读:


前端又开撕了:用 Rust 写的 Turbopack,比 Vite 快 10 倍?


尤雨溪向 React 推荐自己研发的 Vite,网友:用第三方工具没有任何意义

2022-11-23 13:177900

评论

发布
暂无评论
发现更多内容

如何使用通义灵码玩转Vim - AI编程助手提升效率

阿里云云效

面向企业级应用的React路由管理体系:react-router-manage实践

shinpei

前端 React

小程序技术与PWA对比及出海策略探讨

xuyinyin

芯盾时代PAM解决方案

芯盾时代

特权账号管理

从 Excel 到你的表格应用:数据验证功能的嵌入实践指南

电子尖叫食人鱼

数据 Excel 表格

2025年淘宝店铺运营新API利器:手把手教你打造“全息数据可视化实时看板”

代码忍者

淘宝API接口

最新超全免费实用API接口大合集!程序员&开发者必备工具箱

代码忍者

华为云亮相 KubeCon Europe 2025,共启云原生下一个十年

华为云原生团队

云计算 容器 云原生

GPT-4o怎么抢了Midjourney的饭碗

脑极体

AI

DeepSeek 谈运维:AI 重塑审批流,打造 IT 运维高效工作流

嘉为蓝鲸

AIOPS 智能运维 DeepSeek

Go语言使用通义灵码辅助开发 - AI编程助手提升效率

阿里云云效

Go

【Windows】如何在任意文件夹中右键打开cmd终端

知识浅谈

cmd window 快捷方式

如何使用通义灵码玩转Vim - AI编程助手提升效率

阿里巴巴云原生

vim

嘉为蓝鲸 平台V5.4 :云原生底座+安全效能双引擎,重塑企业数字化转型基座

嘉为蓝鲸

智能运维 产品发布 研运一体化

企业网络管理复杂?SD-WAN来解决

Ogcloud

SD-WAN 企业组网 SD-WAN组网 SD-WAN厂商 SD-WAN厂家

OpsPilot 揭秘 RAG 预处理优化:文档提取精度提升 30%,分块策略深度拆解

嘉为蓝鲸

智能运维 知识库 #WeOps

一款安全好用的企业即时通讯平台,支持统一门户

BeeWorks

即时通讯IM 私有化部署 企业级应用

AI时代测试开发者的核心技术体系

测试人

人工智能

谷歌发布 Agent SDK,可跨平台开发语音智能体;ViiTor AI 4.0 发布:3 秒样本情感声音克隆,TTS 模型开源

声网

ITSM运营:服务请求管理步步进阶

嘉为蓝鲸

AIOPS ITSM 智能运维

多账号运营必备:OgPhone云手机功能分享

Ogcloud

云手机 tiktok运营 社媒运营 海外社媒运营 矩阵运营

Go语言使用通义灵码辅助开发 - AI编程助手提升效率

阿里巴巴云原生

Go

如何使用通义灵码提高前端开发效率

阿里云云效

蚂蚁 Flink 实时计算编译任务 Koupleless 架构改造

SOFAStack

云原生 分布式云 java 分布式,

Pura X阔折叠适配:解锁超视觉与高效交互的全新体验

HarmonyOS开发者

“全息投影”式精细财务分析究竟需要什么样的数据库?

YMatrix 超融合数据库

流计算 财务 流式计算 YMatrix

拒绝停服, 随时回退:Sybase 到 Postgresql 的无缝数据库双向迁移方案

tapdata

容灾备份 sybase数据库 sybase迁移 高可用数据库迁移 CDC同步

降本提效双丰收!嘉为蓝鲸DevOps研发效能管理平台 V7.1 春季首发,AI 赋能研运全链路

嘉为蓝鲸

智能运维 降本增效 产品发布 #DevOps

Tivoli国产化替代:告别单体架构,嘉为蓝鲸全栈智能观测中心引领云原生监控新变革

嘉为蓝鲸

AIOPS 智能运维 可观测 全栈智能观测中心

如何使用通义灵码提高前端开发效率

阿里巴巴云原生

前端

Next.js 13新的实验性特性,实现App“动态无限制”_大前端_Bruno Couriol_InfoQ精选文章