更新
-
我们已经开始开发 React 18 版本,这将是我们的下一个主要版本。
-
我们创建了一个Working Group(工作组),帮助社区为逐步采用 React 18 中的新功能做。
-
我们已经发布了 React 18 Alpha 以便react类库作者可以尝试并提供反馈。
这篇文章所介绍的更新主要针对第三方类库的维护者。如果您正在学习、教学或使用 React 构建面向用户的应用程序,您可以放心地忽略这篇文章。但是,如果您感到好奇,欢迎您关注 React 18 工作组中的讨论!
React 18 中新特性
当React 18发布时,它将包括开箱即用的改进(如automatic batching)、新的 API(如 startTransition)和一个内置对 React.lazy 支持的new streaming server renderer。
由于我们在 React 18 中添加了一种新的可选机制,才会让这些新功能成为可能。这个机制被称为“concurrent rendering(并发渲染)”,它允许 React 同时准备多个版本的 UI。这种变化主要是在底层(相对开发者所接触到的接口层)进行的,但它释放了更多能力,以提高应用程序的真实和感知性能。
如果你一直在关注我们的 React 未来研究(我们不希望你这样做!),你可能听说过一种叫做“concurrent mode(并发模式)”的东西,或者听说过这种特性可能会破坏你的应用程序。为了响应社区的这一反馈,我们重新设计了升级策略,将断崖式升级改为渐进式升级。相比于之前concurrent mode所可能带来的断崖式升级(要么不用,要么就All in),concurrent rendering 只有在你使用了某些特定的新特性的时候才会触发。在实践中,这意味着您将能够在不重写现有项目的情况下升级到 React 18,并按照自己的节奏尝试新功能。
渐进式的升级策略
由于 React 18 中的concurrent mode是可选的,因此组件行为表现没有发生重大的变化。你可以用不更改或者最小更改的方式升级到react 18,其工作量与以往典型的主要 React 版本的迁移工作相当。根据我们将多个应用程序转换为 React 18 的经验,我们预计许多用户将能够在一个下午内完成升级工作。
我们成功地为 Facebook 的数万个组件提供了并发功能,根据我们的经验,我们发现大多数 React 组件能够“正常工作”,无需额外更改。我们致力于确保整个社区的顺利升级,因此今天我们宣布成立 React 18 Working Group(React 18 工作组)。
与社区协作
在与社区合作方面,我们正在为这个版本尝试一些新的东西:我们已经邀请了来自整个 React 社区的专家、开发人员、react 类库作者和教育工作者参加我们的 React 18 工作组,以提供反馈、提出问题,一起为最终的正式发布而共同努力。我们无法邀请我们想要的每个人加入这个刚起步的小团体,但如果这个实验成功,我们希望将来会要邀请更多的人进来!
React 18 工作组的目标是让现有应用程序和类库顺利、逐步升级到 React 18 。工作组托管在 GitHub Discussions,可供公众阅读。工作组的成员可以留下反馈、提出问题和分享想法。核心团队还将使用GitHub Discussions来分享我们的研究结果。随着稳定版本的临近,任何重要信息也将发布在此博客上。
有关升级到 React 18 的更多信息,或有关该版本的其他资源,请参阅 React 18 announcement post。
如何访问 React 18 Working Group?
每个人都可以看到 React 18 工作组 repo 中的讨论。
由于我们预计工作组一旦向外公布后公众对此的热度会激增,因此只允许受邀成员能够创建或者评论相关话题。但是,这些话题对公众完全可见,因此每个人能够看到的信息都是一模一样的。我们相信这是在『为工作组成员创造一个高效环境』与『保证社区信息透明度』之间的良好折衷方案。
与往常一样,您可以向我们的 issue tracker 提交错误报告、问题和正常反馈。
如何尝鲜呢?
通过 react 18 的 alpha 版本,我们可以对 react 18 进行尝鲜。
新的 alpha 会使用 @alpha 标签定期发布到 npm。这些版本都是使用我们仓库最新提交上来的完整源码来构建的。合并功能或错误修复后,我们会继续发布新的 alpha 版本,这个发布间隔是以工作日来计。
在 alpha 版本之间可能会有明显的行为或 API 更改。请记住,我们不建议将 alpha 版本用于面向用户的生产级应用程序。
React 18 发布时间表(预计的)
我们没有确切的的发布进程时间表,但我们预计正式发布 React 18 之前,需要几个月的时间来反馈和迭代。
- Alpha 版本:今天可用
- Public Beta 版本(公开测试版):至少几个月
- Release Candidate (RC,候选版本):Beta 版本后至少几周
- 正式版本:RC 版本后至少几周
有关我们发布进程时间表的更多详细信息,请参阅工作组。当我们接近正式发布状态时,我们将在此博客上发布更新。
总结
一个新组织:
三个新特性: