在vue中,key是DOM对象的标识,是给每一个vnode的唯一id,也是diff的一种优化策略;可以根据key,更准确、 更快的找到对应的vnode节点。如果数据只做展示使用,可以使用index作为key;如果使用index作为key,而后续操作会破坏顺序,一定会带来效率问题,严重时会渲染出错误的DOM。
本教程操作环境:windows7系统、vue3版,DELL G3电脑。
1. key是什么
key在Vue是DOM对象的标识;key是给每一个vnode的唯一id,也是diff的一种优化策略,可以根据key,更准确, 更快的找到对应的vnode节点。进行列表展示时,默认key是index。如果数据只做展示使用,使用index作为key是没有任何问题的。如果使用index作为key,而后续操作会破坏顺序,一定会带来效率问题,严重时会渲染出错误的DOM。【学习视频分享:vue视频教程、1. key是什么key在Vue是DOM对象的标识;key是给每一个vnode的唯一id,也是diff的一种优化策略,可以根据key,更准确, 更快的找到对应的vnode节点。进行列表展示时,默认key是index。如果数据只做展示使用,使用index作为key是没有任何问题的。如果使用index作为key,而后续操作会破坏顺序,一定会带来效率问题,严重时会渲染出错误的DOM。【学习视频分享:vue视频教程】
关于key的作用及实现原理,下面一一道来。
1. key是什么
key在Vue是DOM对象的标识;key是给每一个vnode的唯一id,也是diff的一种优化策略,可以根据key,更准确, 更快的找到对应的vnode节点。进行列表展示时,默认key是index。如果数据只做展示使用,使用index作为key是没有任何问题的。如果使用index作为key,而后续操作会破坏顺序,一定会带来效率问题,严重时会渲染出错误的DOM。【学习视频分享:vue视频教程、1. key是什么key在Vue是DOM对象的标识;key是给每一个vnode的唯一id,也是diff的一种优化策略,可以根据key,更准确, 更快的找到对应的vnode节点。进行列表展示时,默认key是index。如果数据只做展示使用,使用index作为key是没有任何问题的。如果使用index作为key,而后续操作会破坏顺序,一定会带来效率问题,严重时会渲染出错误的DOM。【学习视频分享:vue视频教程】
现在我们为上述示例加上key,这里以每条数据的id为key
key的原理 const vm = new Vue({ el:'#root', data:{ persons:[ {'id':'001', 'name':'张三','age':'18'}, {'id':'002', 'name':'李四','age':'19'}, {'id':'003', 'name':'王五','age':'20'} ] } })人员列表
- {{p.name}}-{{p.age}}
登录后复制
加上key的展示结果和上图结果一模一样。
立即学习“前端免费学习笔记(深入)”;
而如果我们在浏览器上查看元素,不会看到key的存在。
截至目前,我们可以得到两个结论:1. 只做数据展示用,不写key是没有任何影响的;2.key不会出现在真实DOM中
实际上,即使不写key,Vue在生成真实DOM时,也用到了key,默认是数据索引(index)
我们把key替换为index,展示的数据不会产生任何改变。
登录后复制
1. key是什么key在Vue是DOM对象的标识;key是给每一个vnode的唯一id,也是diff的一种优化策略,可以根据key,更准确, 更快的找到对应的vnode节点。进行列表展示时,默认key是index。如果数据只做展示使用,使用index作为key是没有任何问题的。如果使用index作为key,而后续操作会破坏顺序,一定会带来效率问题,严重时会渲染出错误的DOM。【学习视频分享:vue视频教程!!












登录后复制
key的原理 const vm = new Vue({ el:'#root', data:{ persons:[ {'id':'001', 'name':'张三','age':'18'}, {'id':'002', 'name':'李四','age':'19'}, {'id':'003', 'name':'王五','age':'20'} ] }, methods:{ add(){ const p = {'id':'004', 'name':'老刘','age':'40'} this.persons.unshift(p) } } })人员列表
- {{p.name}}-{{p.age}}-{{index}}
登录后复制
登录后复制
登录后复制
以上就是vue的key是什么的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2924387.html