key用于渲染对象的排序,所以必须是用唯一标记的值。那index作为数组的唯一标识为什么不建议用来作为key呢?
得现在说说数组的特性,数组是以堆栈的形式来存在输入元素的。在直接push()一个新元素的时候是直接加到最末尾。在删除一个index=3元素的时候,下一个元素会“补上”来,使用这个index,删除后index=3的对象就变成了了原来的下一个对象。
那么在业务处理过程中,如果使用v-for加载了一组checkBox,根据业务情况,先选中了index=3的checkBox对象后,又需要删除这个选项,添加一个新的选项。那么这时候,原本index=4的那个对象就会变成被选中的状态。
这种错误其实也是可以接解决的,就是在删除index=3的选项是,把checked的元素清空。但是这其实是一个可以避免的情况,只需要不适用数组下标作为key就行了。
这只是我的一个思考,下次有空再补充代码吧。