大致的错误代码如下:
<div>
<div v-for="(item, index) for list1" :key="index">
</div>
<div v-for="(item, index) for list2" :key="index">
</div>
</div>
虽然上述代码能正常编译,且中的两个 index,来自不同的 list。但两个 list 的值彼此之间可能存在相同,比如: list1 的 index 的值为 1、2、3,而 list2 的 index 的值为 1、2、3,或者 list 2 的值至少与 list 1 的值有一个相同,Vue 就会“建议性”报错:
Duplicate keys detected: 'xxx'. This may cause an update error. found in ……
其中的 xxx,为两个 index 之间相同的值。
为避免此类型的报错,建议类似如下方式定义 index
<div>
<div v-for="(item, index) for list1" :key="'list1' + index">
</div>
<div v-for="(item, index) for list2" :key="'list2' + index">
</div>
</div>