React 18 计划

2021年6月8日,作者:Andrew ClarkBrian VaughnChristine AbernathyDan AbramovRachel NaborsRick HanlonSebastian MarkbågeSeth Webster


React 团队很高兴分享一些更新

  1. 我们已经开始着手 React 18 的发布工作,这将是我们的下一个主要版本。
  2. 我们创建了一个工作组,以帮助社区逐步采用 React 18 中的新功能。
  3. 我们已经发布了 React 18 Alpha 版本,以便库作者可以试用并提供反馈。

这些更新主要针对第三方库的维护者。如果您正在学习、教授或使用 React 构建面向用户的应用程序,您可以放心地忽略这篇文章。但如果您感兴趣,欢迎关注 React 18 工作组的讨论!


React 18 的新特性

React 18 发布后,将包含一些开箱即用的改进(例如自动批处理)、新的 API(例如startTransition)以及新的流式服务器渲染器,内置支持React.lazy

这些功能的实现要归功于我们在 React 18 中添加的一种新的可选机制,称为“并发渲染”。它允许 React 同时准备 UI 的多个版本。这一变化主要在幕后进行,但它为提高应用程序的实际和感知性能提供了新的可能性。

如果您一直在关注我们对 React 未来发展的研究(我们并不期望您这样做!),您可能听说过“并发模式”或它可能会破坏您的应用程序。为了回应社区的这些反馈,我们重新设计了升级策略,以实现逐步采用。并发渲染不会以全有或全无的“模式”启用,而只会在由新功能触发的更新中启用。在实践中,这意味着您将能够在不重写代码的情况下采用 React 18,并按照自己的节奏尝试新功能。

逐步采用策略

由于 React 18 中的并发是可选的,因此对组件行为没有重大的开箱即用的破坏性更改。您可以升级到 React 18,而无需对应用程序代码进行任何更改,或者只需进行少量更改,其工作量与典型的 React 主要版本发布相当。根据我们将几个应用程序转换为 React 18 的经验,我们预计许多用户将能够在一个下午内完成升级。

我们已成功将并发功能应用于 Facebook 的数万个组件,根据我们的经验,我们发现大多数 React 组件“无需额外更改即可正常工作”。我们致力于确保整个社区都能顺利升级,因此今天我们宣布成立 React 18 工作组。

与社区合作

对于这个版本,我们正在尝试一些新的东西:我们邀请了来自 React 社区的专家、开发人员、库作者和教育工作者组成小组,参与我们的React 18 工作组,以提供反馈、提出问题并合作发布。我们无法邀请所有我们想要邀请的人加入这个最初的小组,但如果这个实验成功,我们希望将来会有更多人加入!

React 18 工作组的目标是帮助生态系统做好准备,以便现有应用程序和库能够顺利、逐步地采用 React 18。工作组的讨论托管在GitHub 讨论区,公众可以阅读。工作组成员可以留下反馈、提出问题并分享想法。核心团队还将使用讨论库来分享我们的研究成果。随着稳定版本的临近,任何重要信息也将在本博客上发布。

有关升级到 React 18 的更多信息或有关该版本的其他资源,请参阅React 18 公告文章

访问 React 18 工作组

任何人都可以在 React 18 工作组仓库 中阅读讨论内容。

由于我们预计初期会有大量用户对工作组感兴趣,因此只有受邀成员才能创建或评论主题。 然而,这些主题对公众完全可见,因此每个人都能获得相同的信息。 我们相信,这是在为工作组成员创造高效环境与保持与更广泛社区的透明度之间的一个良好折衷方案。

与往常一样,您可以向我们的 问题跟踪器 提交错误报告、问题和一般反馈。

如何试用 React 18 Alpha 版本

新的 Alpha 版本会定期使用 @alpha 标签发布到 npm。 这些版本使用我们主仓库的最新提交构建。 当合并某个功能或错误修复后,它将在下一个工作日的 Alpha 版本中出现。

Alpha 版本之间可能存在重大的行为或 API 更改。 请记住,不建议将 Alpha 版本用于面向用户的生产应用程序

预计 React 18 发布的时间表

我们没有安排具体的发布日期,但我们预计 React 18 需要几个月的反馈和迭代才能为大多数生产应用程序做好准备。

  • 库 Alpha 版本:今天可用
  • 公开 Beta 版本:至少几个月后
  • 候选发布版 (RC):Beta 版发布后至少几周
  • 正式发布:RC 发布后至少几周

更多关于我们预计发布的时间表的信息,请参见工作组。 当我们更接近公开发布时,我们会在这个博客上发布更新。