React是否总是检查整个树?

当通过调用setState更新组件时,React是在整个DOM树上还是仅在属于更新组件的那部分上运行差异算法?

例如,如果我的应用程序中有10000个组件,并且在没有子组件的组件中调用setState(这是树的叶子),那么React将遍历整个大型DOM树(这很慢)或仅遍历DOM树由组件生成(会快很多)?

回答:

不,仅在叶节点上调用setState时,React不会遍历整个树。

调用setState时,react将仅重新渲染为其调用setState的组件(树节点)以及所有子组件(节点)。应该注意的是,React只会在对setState的调用中确实存在要表示的更改时才更新DOM。

Vjeux是React团队的成员之一,他写了一篇不错的博客文章,详细介绍了react

diff算法的工作方式以及调用setState时的工作方式。这是链接。

以上是 React是否总是检查整个树? 的全部内容, 来源链接: utcz.com/qa/397764.html

回到顶部