:key=‘index’
实现下图中的ul列表,生成虚拟dom的过程大致如下(此时:key=‘index’,打乱数据顺序的时候,:key=‘index’就会有问题)
- 循环初始数据生成在内存中生成虚拟dom
- 将虚拟dom转化为真实dom
- 此时我们在旧数据的头部插入一个对象,生成新数据
- vue会根据相同的key值进行比对,此时的key=‘0’的虚拟dom中文本部分不一致,所以会由 张三=>老刘,但是后面的input节点一样类型一样,且初始虚拟dom已经生成,所以会直接放到key=‘0’的虚拟dom中,出现列表错位
- 可以看到列表错位,同样的key值对应的节点内容不一样,一旦不一样,就会重新生成虚拟dom,导致效率低下
:key=‘id’,id为固定值
总结: