key的作用

224 阅读1分钟
  1. key的作用主要是为了高效的更新虚拟DOM,其原理是vue在patch过程中通过key可以精准判断两个节点是否是同一个,从而避免频繁更新不同元素,使得整个patch过程更加高效,减少DOM操作量,提高性能。
  2. 当使用v-for遍历的时候,存在二种情况:
    • 第一种情况:当没有key的时候或者key为index的时候,它会采用就地复用(就地更新)原则,在顺序上位置是同一个索引就会被认为是同一个元素,当元素顺序被打乱则相对应的index也会被打乱在将新旧虚拟DOM比较key的值,如果对比不一致则不能复用。
    • 根据新数据生成虚拟DOM,通过虚拟DOM对比算法,会在新的虚拟DOM中寻找在初始虚拟DOM中key值相同的节点,开始进行对比,如果对比不一致,则不能复用。
    • 第二种情况就是有key且key的值是唯一的时候,就像人的身份证一样,有了这个以后即便顺序打乱了,vue也能找到,就不会出现更新旧元素的情况。