React正式版v180发布了

裂变式营销求职招聘QQ群 http://liangssw.com/shishang/13036.html
React正式版v18.0

年3月29日,React团队[1]

React18现在可以在npm上使用!

在上一篇文章中,我们分享了将您的应用程序升级到React18[2]的分步说明。在这篇文章中,我们将概述React18的新特性,以及它对未来的意义。

我们最新的主要版本包括开箱即用的改进,如自动批处理、新的API(如startTransition)和支持Suspense的流式服务器端渲染。

React18中的许多功能都建立在我们新的并发渲染器之上,这是一个解锁强大新功能的幕后更改。ConcurrentReact是可选的——它仅在您使用并发功能时启用——但我们认为它会对人们构建应用程序的方式产生重大影响。

我们花了数年时间研究和开发对React并发的支持,并且我们特别注意为现有用户提供逐步采用的路径。去年夏天,我们成立了React18工作组[3],收集社区专家的反馈,确保整个React生态系统的顺利升级体验。

如果你错过了,我们在ReactConf上分享了很多这样的愿景:

在主题演讲[4]中,我们解释了React18如何融入我们的使命,即让开发人员轻松构建出色的用户体验ShrutiKapoor[5]演示了如何使用React18中的新功能[6]ShaundaiPerson[7]为我们概述了使用Suspense进行流式服务器渲染[8]

以下是此版本中预期内容的完整概述,从并发渲染开始。

ReactNative用户注意事项:React18将在带有新ReactNative架构的ReactNative中发布。有关更多信息,请参阅此处的ReactConf主题演讲[9]。

什么是并发反应?

React18中最重要的新增功能是我们希望您永远不必考虑的:并发性。我们认为这对于应用程序开发人员来说基本上是正确的,尽管对于库维护人员来说这个故事可能有点复杂。

并发本身不是一个特性。这是一种新的幕后机制,使React能够同时准备多个版本的UI。您可以将并发视为一个实现细节——它之所以有价值,是因为它解锁了一些特性。React在其内部实现中使用了复杂的技术,例如优先级队列和多重缓冲。但是您不会在我们的公共API中的任何地方看到这些概念。

当我们设计API时,我们试图向开发人员隐藏实现细节。作为一名React开发人员,您专注于您希望用户体验的样子,而React负责处理如何提供这种体验。所以我们不期望React开发人员知道并发是如何工作的。

然而,ConcurrentReact比典型的实现细节更重要——它是对React核心渲染模型的基础更新。因此,虽然了解并发的工作原理并不是非常重要,但可能值得从高层次了解它是什么。

ConcurrentReact的一个关键属性是渲染是可中断的。当您第一次升级到React18时,在添加任何并发功能之前,更新的呈现方式与之前版本的React相同——在单个、不间断的同步事务中。使用同步渲染,一旦更新开始渲染,在用户可以在屏幕上看到结果之前,没有任何东西可以中断它。

在并发渲染中,情况并非总是如此。React可能会开始渲染更新,在中间暂停,然后再继续。它甚至可能完全放弃正在进行的渲染。React保证即使渲染被中断,UI也会保持一致。为此,它会等待执行DOM突变,直到完成整个树的评估。有了这个能力,React可以在后台准备新的屏幕而不阻塞主线程。这意味着UI可以立即响应用户输入,即使它处于大型渲染任务的中间,从而创造流畅的用户体验。

另一个例子是可重用状态。ConcurrentReact可以从屏幕上删除部分UI,然后在重用之前的状态时将它们添加回来。例如,当用户从一个屏幕上移开并返回时,React应该能够将前一个屏幕恢复到与之前相同的状态。在即将到来的未成年人中,我们计划添加一个名为Offscreen实现此模式的新组件。同样,您将能够使用Offscreen在后台准备新UI,以便在用户显示之前准备好。

并发渲染是React中一个强大的新工具,我们的大多数新功能都是为了利用它而构建的,包括Suspense、过渡和流式服务器渲染。但是React18只是我们在这个新基础上构建目标的开始。

逐渐采用并发特性

从技术上讲,并发渲染是一个突破性的变化。因为并发渲染是可中断的,所以启用它时组件的行为会略有不同。

在我们的测试中,我们已经将数千个组件升级到了React18。我们发现几乎所有现有组件都“可以正常工作”并发渲染,没有任何更改。但是,其中一些可能需要一些额外的迁移工作。尽管更改通常很小,但您仍然可以按照自己的节奏进行更改。React18中的新渲染行为仅在应用程序中使用新功能的部分启用。

整体升级策略是让您的应用程序在React18上运行,而不会破坏现有代码。然后,您可以按照自己的节奏逐渐开始添加并发功能。您可以使用它[](


转载请注明:http://www.aierlanlan.com/rzdk/74.html

  • 上一篇文章:
  •   
  • 下一篇文章: