为什么使用v-for时必须添加唯一的key?
2018-10-25 本文已影响0人
一粒有梦想的痞老板
我们在使用VUE框架时都会用到v-for
- 我们可以使用v-for更新已渲染的元素列表时,默认用就地复用策略;
- 列表数据修改的时候,他会根据key值去判断某个值是否修改,如果修改,则重新渲染这一项,否则复用之前的元素;
- 我们在使用的使用经常会使用数组的下标index来作为key,但其实这是不推荐的一种使用方法;
使用index作为key,列举两种种常见的数据更新情况
1.如果在最后一条数据后再加一条数据
const list = [
{
id: 1,
name: 'test1',
},
{
id: 2,
name: 'test2',
},
{
id: 3,
name: 'test3',
},
{
id: 4,
name: '我是在最后添加的一条数据',
},
]
- 此时前三条数据直接复用之前的,新渲染最后一条数据,此时用index作为key,没有任何问题;
2.如果在中间插入一条数据
const list = [
{
id: 1,
name: 'test1',
},
{
id: 4,
name: '我是插队的那条数据',
}
{
id: 2,
name: 'test2',
},
{
id: 3,
name: 'test3',
},
]