如何反应更新DOM的一部分?

哈弗先生

我知道这个主题已经讨论了很多,但是我不确定如何研究我的问题,我希望它遵循这里的规则。

我知道,要决定是否更新DOM,请对虚拟DOM与重新渲染的DOM进行比较。但是我只是不知道它是否决定更新它-它会更新特定的重新渲染组件的所有元素,还是只知道更改componenet的更改的元素?

提前致谢,

罗伯特·伦纳德

对帐文档是更好地了解React如何决定重新呈现元素的一个好地方,但我可以总结一下:

每次调用render()时, react将创建一个新的虚拟DOM,其中根节点是其渲染函数被调用的组件。组件或其任何子组件的状态属性更改时,将调用render()函数render()函数从根目录开始销毁所有旧的虚拟DOM节点,并创建一个全新的虚拟DOM。

为了确保组件的重新渲染流畅高效,React使用Diffing算法将创建新树所需的时间减少到O(n)的时间复杂度,通常复制树的时间复杂度为> O (n ^ 2)。它是通过在DOM中的每个元素上使用“ key”属性来完成此操作的。React知道,除了从头创建每个元素之外,它还可以检查DOM中每个节点上的“ key”属性。这就是为什么如果不设置每个元素的“ key”属性会收到警告的原因,React使用这些键大大提高了其渲染速度。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章