Skip to main content

列表遍历时 key 作用?

当出现大量相同的标签时,key 作为虚拟 DOM 对象的比较标识。vnode 会首先判断 key 和标签名是否一致,如果一致再去判断子节点一致。

为什么不能用 index 作为 key?

key 应为唯一标示,在数组变更时插入或删除后,index 无法确保始终指向对应的序列。

如果你用 index 作为 key,那么在删除第二项的时候,index 就会从 1 2 3 变成 1 2(因为 index 永远都是连续的,所以不可能是 1 3),那么 Vue 依然会认为你删除的是第三项。

所以,永远不要用 index 作为 key。

参考文章: