区别:1、当节点元素类型相同,类名不同时,vue认为是不同的元素,会删除重新创建,而react认为是同类型节点,会进行修改操作;2、列表对比时,vue采用从两端到中间的方式进行对比,而react则是从左往右进行对比。
本文操作环境:windows10系统、Vue2.9.6版,DELL G3电脑。
diff算法:
对dom进行different比较不同的一种算法(虚拟)
共同点:
vue和diff算法,都是不进行跨层级比较,只做同级比较
不同点:
1.vue进行diff时,调用patch打补丁函数,一边比较一边给真实的dom打补丁,vue对比节点时,当节点元素类型相同,类名不同时,认为是不同的元素,删除重新创建,而react认为是同类型的节点,进行修改操作
2.vue列表对比的时候,采用从两端到中间的方式,旧集合和新集合两端各存在两个指针,两两进行比较,每次对比结束后,指针向队列中间移动;react则是从左往右一次对比,利用元素的index和lastindex进行比较
3.当一个集合把最后一个节点移动到最前面,react会把前面的节点依次向后移动,而Vue只会把最后一个节点放在最前面,这样的操作来看,Vue的diff性能是高于react的
【相关推荐:《vue.js教程》】
以上是vue和react中的diff有什么区别的详细内容。更多信息请关注PHP中文网其他相关文章!