【Vue】vue的v-for里的key可以都用index吗
<Select:label-in-value='true'
@on-change='choosePartyOther(index,$event)'
v-model="item.enterpriseName"
filterable
remote
:remote-method="remoteMethod3"
:loading="loading3">
<Option v-for="(option, index) in options1" :value="option.value"
:key="index">{{option.label}}</Option>
</Select>
比如上面这样,这是用的iview里的select
回答
key 的特殊属性主要用在 Vue的虚拟DOM算法,在新旧nodes对比时辨识VNodes。如果不使用key,Vue会使用一种最大限度减少动态元素并且尽可能的尝试修复/再利用相同类型元素的算法。使用key,它会基于key的变化重新排列元素顺序,并且会移除key不存在的元素。
"有相同父元素的子元素必须有独特的key。重复的key会造成渲染错误。"
最好不要用index,因为key值就相当于当前元素的一个身份名牌,需要是独一无二的,这样在更新数据的时候,Vue 将不会移动 DOM 元素来匹配数据项的顺序, 而是简单复用此处每个元素,并且确保它在特定索引下显示已被渲染过(通过key值确认)的每个元素,你用下标的话,如果数组发生改变,就有可能出现相同的key值,这样的话Vue又要比较这两个相同key值的dom元素(本来通过key值就能确定的)。具体可以参照官方文档的说明
只要保证key是唯一值就行了
看看官方文档,点这里
可以,只是性能不好,因为在一些情况下需要重新diff整个虚拟dom树。
可以,但是不利于重用现有元素,
以上是 【Vue】vue的v-for里的key可以都用index吗 的全部内容, 来源链接: utcz.com/a/72558.html