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