vue的key是什么

vue中,key是DOM对象的标识,是给每一个vnode的唯一id,也是diff的一种优化策略;可以根据key,更准确、 更快的找到对应的vnode节点。如果数据只做展示使用,可以使用index作为key;如果使用index作为key,而后续操作会破坏顺序,一定会带来效率问题,严重时会渲染出错误的DOM。

vue的key是什么

本教程操作环境: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的原理            

人员列表

  • {{p.name}}-{{p.age}}
const vm = new Vue({ el:'#root', data:{ persons:[ {'id':'001', 'name':'张三','age':'18'}, {'id':'002', 'name':'李四','age':'19'}, {'id':'003', 'name':'王五','age':'20'} ] } })

登录后复制

加上key的展示结果和上图结果一模一样。

立即学习“前端免费学习笔记(深入)”;

image-20211011224230413

而如果我们在浏览器上查看元素,不会看到key的存在。

image-20211011224928540

截至目前,我们可以得到两个结论:1. 只做数据展示用,不写key是没有任何影响的;2.key不会出现在真实DOM中

实际上,即使不写key,Vue在生成真实DOM时,也用到了key,默认是数据索引(index)

我们把key替换为index,展示的数据不会产生任何改变。

  • {{p.name}}-{{p.age}}
  • 登录后复制

    1. key是什么key在Vue是DOM对象的标识;key是给每一个vnode的唯一id,也是diff的一种优化策略,可以根据key,更准确, 更快的找到对应的vnode节点。进行列表展示时,默认key是index。如果数据只做展示使用,使用index作为key是没有任何问题的。如果使用index作为key,而后续操作会破坏顺序,一定会带来效率问题,严重时会渲染出错误的DOM。【学习视频分享:vue视频教程!!image-20211011225246624image-20211011230442273image-20211011230815984image-20211011231349758image-20211011231548484image-20211011231848647在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • {{p.name}}-{{p.age}}
  • 登录后复制

            key的原理            

    人员列表

    • {{p.name}}-{{p.age}}-{{index}}
    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}}
  • 登录后复制

  • {{p.name}}-{{p.age}}
  • 登录后复制

    以上就是vue的key是什么的详细内容,更多请关注【创想鸟】其它相关文章!

    版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

    发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2924387.html

    (0)
    上一篇 2025年3月11日 18:56:12
    下一篇 2025年3月11日 18:56:32

    AD推荐 黄金广告位招租... 更多推荐

    相关推荐

    • vue的watch是做什么的

      在vue中,watch用于监听data里面的数据是否被修改,一旦修改就可以执行一些其他的操作。watch是vue内部提供的一个用于侦听功能的通用的方法,可响应数据的变化,通过特定的数据变化驱动一些操作。 本教程操作环境:windows7系统…

      2025年3月11日 编程技术
      200
    • vue路由模式有哪些

      vue路由模式有:1、hash模式,使用URL的hash值来作为路由,支持所有浏览器;其url路径会出现“#”字符。2、history模式,依赖于HTML5 API(旧浏览器不支持)和HTTP服务端配置,没有后台配置的话,页面刷新时会出现4…

      2025年3月11日
      200
    • 用vue框架有什么好处

      用vue的好处:1、Vue是组件化开发,减少代码的书写,使代码易于理解;2、可以对数据进行双向绑定;3、相比较传统的用超链接进行页面的切换与跳转,Vue使用的是路由,不用刷新页面;4、Vue是单页应用,加载时不用获取所有的数据和dom,提高…

      2025年3月11日
      200
    • vue缓存组件是什么意思

      在vue中,缓存组件是“keep-alive”,是一个抽象组件;它自身不会渲染一个 DOM 元素,也不会出现在组件的父组件链中。缓存组件主要用于保留组件状态或避免重新渲染,当它包裹动态组件时,会缓存不活动的组件实例,而不是销毁它们。 本教程…

      2025年3月11日
      200
    • 什么是vue单页面和多页面

      在vue中,单页面全称“SPA单页面应用”,是指只有一个主页面的应用(一个html页面),从而使整个页面更加流畅;单页面应用提供的信息和一些主要内容已经过筛选和控制,可以简单方便地阅读和浏览。多页面全称“MPA多页面应用”,是指包含多个独立…

      2025年3月11日 编程技术
      200
    • vue中的el是指什么简写

      在vue中,el是element的缩写,可称之为挂载点。el的作用是提供一个在页面上已存在的DOM元素作为Vue实例的挂载目标,可以是CSS选择器,也可以是一个HTMLElement实例;在实例挂载之后,元素可以用“vm.$el”访问。 本…

      2025年3月11日
      200
    • vue中mixin和组件的区别是什么

      mixin和组件的区别:组件在引用之后相当于在父组件内开辟了一块单独的空间,来根据父组件props过来的值进行相应的操作,单本质上两者还是泾渭分明,相对独立;而mixins在引入组件之后相当于父组件的各种属性方法都被扩充了,会将组件内部的内…

      2025年3月11日
      200
    • vue页面渲染是同步还是异步

      vue页面渲染是异步的。vue采用的是异步渲染,这样可以提升性能;如果不采用异步更新,在每次更新数据都会对当前组件进行重新渲染,为了性能考虑,Vue会在本轮数据更新后,再去异步更新视图。 本教程操作环境:windows7系统、vue3版,D…

      2025年3月11日
      200
    • vue移动端用什么框架

      vue移动端框架有:1、Vant,基于有赞统一的规范实现的Vue组件库;2、Mint UI,是一个vue移动端组件库;3、Wot Design;4、NutUI;5、JDDUI;6、vux;7、vonic;8、Muse-UI;9、Cube-U…

      2025年3月11日 编程技术
      200
    • vue的$refs是什么意思

      在vue中,$refs是一个对象,持有注册过ref attribute的所有DOM元素和组件实例。ref被用来给元素或子组件注册引用信息,引用信息将会注册在父组件的“$refs”对象上;如果在普通的DOM元素上使用,引用指向的就是DOM元素…

      2025年3月11日
      200

    发表回复

    登录后才能评论