Vue中列表渲染使用Index和id作为key的区别

        在渲染不会在非尾部添加,删除元素的列表时,我们可以不用指定key,这时候key默认是index。在此外的情况下,应该用元素的唯一标识id作为key的值。

Vue中列表渲染使用Index和id作为key的区别_第1张图片

对于使用index和id作为key的值的区别如下:

        在使用index作为key的值时,先使用初始数据生成虚拟DOM,然后将虚拟DOM转换成真实DOM,之后用户会在真实DOM中输入相同(虚拟DOM中相同,它并不对比真实DOM),所以新的数据的真实DOM的第一条数据就只有name改变了。直观的感受就是数据错位了。并且Vue中列表渲染使用Index和id作为key的区别_第2张图片

        在使用id作为key的值时,两个虚拟DOM依旧需要进行比对,先比对key=004的这条,发现旧虚拟DOM中没有,则添加进真实DOM中,再比对key=001,002,003的,发现name和Vue中列表渲染使用Index和id作为key的区别_第3张图片 开发中如何选择key?

1 最好使用每条数据的唯一标识作为key,比如id、手机号、身份证号、学号等唯一值。

2 如果只是修改数据,在结尾添加数据或者仅用于渲染列表用于展示, 使用index作为key是没有问题的

你可能感兴趣的:(Vue,vue.js,前端,javascript)