vue和react的diff算法比较
相同点:vue和react的diff算法,都是不进行跨层级比较,只做同级比较。不同点:vue进行dif时,调用patch打补丁函数,一边比较一边给真实的DOM打补丁Vue对比节点,当节点元素类型相同,但是className不同时,认为是不同类型的元素,删除重新创建,而react则认为是同类型节点,进行修改操作① Vue的列表比对,采用从两端到中间的方式,旧集合和新集合两端各存在两个指针,两两进行比
·
相同点:
Vue和react的diff算法,都是不进行跨层级比较,只做同级比较。
不同点:
- Vue进行diff时,调用patch打补丁函数,一边比较一边给真实的DOM打补丁
- Vue对比节点,当节点元素类型相同,但是className不同时,认为是不同类型的元素,删除重新创建,而react则认为是同类型节点,进行修改操作
- ① Vue的列表比对,采用从两端到中间的方式,旧集合和新集合两端各存在两个指针,两两进行比较,如果匹配上了就按照新集合去调整旧集合,每次对比结束后,指针向队列中间移动;
②而react则是从左往右依次对比,利用元素的index和标识lastIndex进行比较,如果满足index < lastIndex就移动元素,删除和添加则各自按照规则调整;
③当一个集合把最后一个节点移动到最前面,react会把前面的节点依次向后移动,而Vue只会把最后一个节点放在最前面,这样的操作来看,Vue的diff性能是高于react的
更多推荐
已为社区贡献4条内容
所有评论(0)