无论是在react或者vue开发中,我们会遇到key的相关报错的烦恼,比如:不用key,或者选择的key不合理。那么今天小编给你分析分析里面的小秘密
1、v-for为啥要用key?
Vue和React的渲染原理都实现了一套虚拟DOM,使我们可以不直接操作DOM元素,只是操作数据就可以重新渲染页面,背后的‘男人’就是高效的Diff算法
Vue和React的Diff算法大致相同,都是用这三大策略Tree Diff
、Component Diff
、Element Diff
,通过这三层依次的遍历比较,使得虚拟DOM的Diff算法的复杂度从O(n^3)降到了O(n)。
- 蓝色的一层为:
Tree Diff
树每一层进行遍历 - 黄色的一层为:
Component Diff
是数据层面的差异比较 - 绿色的一层为:
Element Diff
真实DOM渲染,结构差异的比较
我们了解了Diff算法是怎么