基于vue--key值的特殊用处详解
数组的v-for
item in items
item of items
item,index in items
(item,index) in items
对象的v-for(键值,键名,索引)
value in object
(value, key) in object
(value, key, index) in object
v-for渲染的列表的结构采用“就地复用”的策略,也就说当数据重新排列数据时,会复用已在页面渲染好的元素,不会移动 DOM 元素来匹配数据项的顺序,这种模式是高效的,改变现有位置的结构的数据即可
eg
问题点击翻转数组哦,高亮并没有跟随1 在,而是直接复用在4上
原因点击翻转数组哦,高亮并没有跟随1 在,而是直接复用在4上
解决需要提供一个唯一的key值(常用ID),以便它能跟踪每个节点的身份,从而重用和重新排序现有元素
补充知识vue---绑定key值与不绑定key的作用及其优点
vue—key值绑定的作用及优点
本文基于vue2x版本进行解析
绑定key值可以更快速和更精确的确定变化数据的位置,并进行响应式操作,在一定量的数据之上时,是高性能的,更多的情况下与v-for一起使用;
不绑定key值vue默认机制状态下的,当小于一定数据量时,并且DOM数据简单处理时,在刻意使用的情况下,vue的默认机制是更加高性能的,仅限于数据量较小,数据类型简单且后续不会有过多更新时使用。
,绑定key值与v-for绑定使用效果更好,不绑定key,在简单场景下使用性能更高,各有优缺点,可根据使用场景,按需使用。
代码分析见下文(如有错误请不吝指出,如正确必采纳改正)
1.在不绑定key的时候
vue中的默认机制是不绑定key,
<div class="father" v-for=" item in data"> <div>1</div> //nodea 默认状态下的不绑定key的虚拟节点 <div>2</div> //nodeb <div>3</div> //nodec <div>4</div> //noded </div>
此状态下的key值发生变化,更新的机制则是{就地更新},但相应的虚拟节点不会发生变化`如下所示这种是vue的默认机制,就地更新,适用于简单的DOM数据渲染,在一定的数据量下,是比key值绑定更加高性能的;
<div class="father" v-for=" item in data"> <div>2</div> //nodea 数据变化后,默认机制的标识没有变化, <div>3</div> //nodeb <div>4</div> //nodec <div>1</div> //noded </div>
2在绑定key值的时候
此时,所有的虚拟节点均被绑定唯一的标识,类似于身份证的作用;
<div class="father" v-for=" item in data" :key="item.id"> <div>1</div> //key:a key值为唯一标识, <div>2</div> //key:b <div>3</div> //key:c <div>4</div> //key:d </div>
如果其中的数据发生变化,diff算法会映射到变化的虚拟节点,更加快速和精准的找到变化的节点,并对其进行newkey和oldkey的值判断,进行相应的更新操作如下
<div class="father" v-for=" item in data" :key="item.id"> <div>4</div> //key:d //数值变化 key值作为唯一标识,跟随 <div>2</div> //key:b <div>3</div> //key:c <div>1</div> //key:a //数值变化 key值作为唯一标识,跟随 </div>
key的唯一标识是跟随数据变化的,并且唯一对应,
以上这篇基于vue--key值的特殊用处详解就是长沙网络推广分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持狼蚁SEO。
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程