vue中v-for使用key
什么是key?
vue中列表循环需要加上的一个属性,不加,系统就会提示报错,:key=“唯一标识” 唯一标识可以是item里面id(index)等,因为vue组件高度复用性,增加Key可以标识组件的唯一性,为了更好地区别各个组件 key的作用主要是为了高效的更新虚拟DOM。
所以,key的作用主要是为了高效的更新虚拟DOM。另外vue中在使用相同标签名元素的过渡切换时,也会使用到key属性,其目的也是为了让vue可以区分它们,否则vue只会替换其内部属性而不会触发过渡效果。
比如:在我们使用v-for的时候,给加上的,相当于id
<ul><li v-for="item in str" :key="item.id">{{item}}</li>
</ul>
用+new Date()生成的时间戳作为key,手动强制触发重新渲染
<Comp :key="+new Date()" />
总结:在vue中,key是给每一个vnode的唯一id,也是diff的一种优化策略,可以根据key,更准确, 更快的找到对应的vnode节点
示例区别:
第一种:当我们在使用v-for时,需要给单元加上key
如果不用key,Vue会采用就地复地原则:最小化element的移动,并且会尝试尽最大程度在同适当的地方对相同类型的element,做patch或者reuse。
如果使用了key,Vue会根据keys的顺序记录element,曾经拥有了key的element如果不再出现的话,会被直接remove或者destoryed。
第二种:用+new Date()生成的时间戳作为key,手动强制触发重新渲染。
不推荐v-for里的index当做key使用
当以数组为下标的index作为key值时,其中一个元素(例如增删改查)发生了变化就有可能导致所有的元素的key值发生改变
diff算法时比较同级之间的不同,以key来进行关联,当对数组进行下标的变换时,比如删除第一条数据,那么以后所有的index都会发生改变,那么key自然也跟着全部发生改变,所以index作为key值是不稳定的,而这种不稳定性有可能导致性能的浪费,导致diff无法关联起上一次一样的数据。因此,能不使用index作为key就不使用index。
vue中v-for使用key相关推荐
- vue中for循环的key值为随机数,则子标签的点击事件或可能无效
学习记录下,具体原因请移步下面两个链接 https://blog.csdn.net/deciduous_leaves/article/details/114630664 https://blog.cs ...
- [vue] 你知道vue中key的原理吗?说说你对它的理解
[vue] 你知道vue中key的原理吗?说说你对它的理解 key的作用主要是为了高效的更新虚拟DOM; 如果没有唯一的key, 数据更新时, 相同节点更新前后无法准确一一对应起来,会导致更新效率降低 ...
- vue 用key拿对象value_利用 WeakMap 对 Vue 新建数组中的对象赋予 :key
需求 在 Vue 中,对组件进行循环都需要加入key以便"就地复用",可是在某些情况下,我们需要新建多个对象,而这些对象不是从后端获取到的,而是前端生成的,没有唯一值,且 Vue ...
- 【Vue2.0】—Vue中的key有什么作用?(四)
[Vue2.0]-Vue中的key有什么作用?(四) <div id="root"><!-- 遍历数组 --><ul><button @c ...
- Vue中key属性的作用
Vue中key属性的作用 在列表渲染时使用key属性 使用key属性强制替换元素 在列表渲染时使用key属性 相信大多数Vue开发者接触到key属性的时候是使用v-for进行列表渲染的时候,如果不使用 ...
- vue核心面试题:v-for中为什么要用key
一.v-for中为什么要用key 1.vue中列表循环需加:key="唯一标识" 唯一标识尽量是item里面id等,因为vue组件高度复用增加Key可以标识组件的唯一性,为了更好地 ...
- vue中v-for为何要加key?index为何不推荐作为key
在使用vue组件的时候,我们经常会遇到v-for必须要加key值 来举个例子进行说明吧! 不存在key的情况 <!--* @Author: angula* @Date: 2020-08-07 0 ...
- multiusb key找不到驱动程序_尤大-Vue中为什么不建议用index作为key?
前言 Vue 中的 key 是用来做什么的?为什么不推荐使用 index 作为 key?常常听说这样的问题,本篇文章带你从原理来一探究竟. 阿里巴巴腾讯前端面试经验,最完整面试真题分享!www.ji ...
- vue中的key的作用?
一.写在前面 下面总结一下,vue中的key的作用,在vue中我们可能在两种情况下使用key,第一种情况下就是在v-if中,第二种情况下就是在v-for中使用key.下面我们来看一下key在其中起到的 ...
最新文章
- 关于新技术的引入原则 ——从零开始学架构
- python爬虫案例-Python3爬虫三大案例实战分享
- 转:初学者简易 .vimrc编写指南
- Unity3D学习笔记——Unity3D的窗口布局
- Android httpUrlConnection的基本使用
- Codeforces Round #640 (Div. 4)(ABCDE)
- 信号处理:单边、双边频谱间的相互转换(转)
- VC++注册,卸载OCX控件,以及判断是否注册
- 大型论坛系统环境搭建(20万日IP负载平衡实战)–Nginx+Apache2+PHP+MySQL
- 北风网VIP6级学习视频地址
- 太阳能计算机屏幕是什么材质,电脑显示器表面是什么材质的 什么是液晶玻璃...
- 无线路由器无线桥接(一)
- 部署基于SAWP的低成本开源CRM系统
- 为你的掘金和 GitHub 设定个性域名
- 短视频合集怎么做,教你快速合并的技巧
- py3_VSCode 配置 Python 环境以及初识 Python 正则表达式
- 微信公众号支付(二)
- XPO:Session管理与缓存--测试篇
- IOS 插屏广告弹窗
- 用Python搞定豆瓣上征婚交友的小姐姐们~