vue虚拟dom和react虚拟dom有什么不同?

react中数据发生变化(调用setstate时),render函数就会执行,重新生成一个新的虚拟dom,这个虚拟dom和旧的虚拟dom做比较,得出差异然后渲染。

而vue组件中数据发生变化,由于数据变化会触发setter,由于vue组件中数据的getter的作用,收集了依赖,setter触发会根据这些依赖,生成新的虚拟dom,然后对比新旧虚拟dom进行渲染。

react 函数式组件思想 当你 setstate 就会遍历 diff 当前组件所有的子节点子组件, 这种方式开销是很大的, 所以 react 16 采用了 fiber 链表代替之前的树,可以中断的,分片的在浏览器空闲时候执行

vue 组件响应式思想 采用代理监听数据,我在某个组件里修改数据,就会明确知道那个组件产生了变化,只用 diff 这个组件就可以了

具体实现的不同,细节可以看一下这个回答:
https://www.zhihu.com/questio...

猜你喜欢

转载自blog.csdn.net/qq_61006976/article/details/121926399
今日推荐