【发布时间】:2016-09-28 15:05:29
【问题描述】:
使用 React 虚拟 Dom,我了解子树部分,或者至少我认为我了解:React 只会从调用了 setState 的组件以及这些组件的所有子组件重新渲染。即,尚未调用 setState 方法的组件,也不是已调用组件的子组件,可以安全地重新渲染。
我不清楚的部分是,当 React 在这些节点上进行协调过程时,它到底比较了什么?我相信在这一步我们有一个新生成的虚拟 DOM 树,但是它是否将它与旧的虚拟 DOM 树进行比较,然后将这些更改应用到实际的 DOM,或者是在新生成的虚拟 DOM 之间完成这个协调过程, 和实际的 DOM 直接?
根据上述答案,我可能有一个后续问题。谢谢!
【问题讨论】:
-
据我所知,它将旧虚拟 dom 与“下一个”虚拟 dom 进行比较。
-
在获得“差异”之后,是否将这些更改应用于实际 DOM?
标签: javascript dom reactjs tree virtual-dom