千家信息网

如何理解VUE v-for中的key

发表于:2025-11-11 作者:千家信息网编辑
千家信息网最后更新 2025年11月11日,今天就跟大家聊聊有关如何理解VUE v-for中的key,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。不在v-for的标签中加入key时。
千家信息网最后更新 2025年11月11日如何理解VUE v-for中的key

今天就跟大家聊聊有关如何理解VUE v-for中的key,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

不在v-for的标签中加入key时。

          关于v-for的key  
  • {{item.name}}

在我们选中李四并添加赵六后,被选中的人变成了张三。



再来看v-for有key的情况:

          关于v-for的key  
  • {{item.name}}



在我们选中李四并添加赵六后,被选中的人还是 李四,没有变化。

这是因为vue底层的Diff算法导致的。diff算法的处理方法是对操作前后的dom树同一层的节点进行对比,一层一层对比,如下图:


当某一层有很多相同的节点时,也就是列表节点时,Diff算法的更新过程默认情况下也是遵循以上原则。

比如一下这个情况:


我们希望可以在B和C之间加一个F,Diff算法默认执行起来是这样的:


即把C更新成F,D更新成C,E更新成D,最后再插入E,是不是很没有效率?

所以我们需要使用key来给每个节点做一个唯一标识,Diff算法就可以正确的识别此节点,找到正确的位置区插入新的节点。


vue中列表循环需加:key="唯一标识" 唯一标识可以是item里面id index等,因为vue组件高度复用增加Key可以标识组件的唯一性,为了更好地区别各个组件 key的作用主要是为了高效的更新虚拟DOM。

看完上述内容,你们对如何理解VUE v-for中的key有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

0