vue列表渲染为什么要使用key

key是什么?

key 的特殊 attribute 主要用在 Vue 的虚拟 DOM 算法,在新旧 nodes 对比时辨识 VNodes。如果不使用 key,Vue 会使用一种最大限度减少动态元素并且尽可能的尝试就地修改/复用相同类型元素的算法。而使用 key 时,它会基于 key 的变化重新排列元素顺序,并且会移除 key 不存在的元素。

有相同父元素的子元素必须有独特的 key。重复的 key 会造成渲染错误。

为什么要用key

首先Vue会尽可能高效地渲染元素,通常会复用已有元素,而不是从头开始渲染
Vue提供了一种方式来表达“这两个元素是完全独立的,不要复用它们。”只需要添加一个具有唯一值的key属性即可

对于v-for来说,默认使用的“就地更新”策略(即不使用key),即如果数据项的顺序被改变,Vue将不会移动DOM元素来匹配数据项的顺序,而是就地更新每个元素。这个默认的模式是高效的。那为什么要使用Key呢,这是为了给Vue一个提示,以便他能跟踪每个节点的身份,从而重用和重新排序现有元素。

key的作用是在数据变化时强制更新组件,避免“就地复用”带来的副作用

猜你喜欢

转载自blog.csdn.net/weixin_51198863/article/details/113791450