简单理解vue中track-by属性


Posted in Javascript onOctober 26, 2016

本文实例为大家解析了vue中track-by的属性,供大家参考,具体内容如下

api:http://cn.vuejs.org/guide/list.html#track-by

示例地址:https://jsfiddle.net/stardew/f1eju0ku/5/

无track-by情况:数据修改时,无论值是否被修改,dom都被重新渲染(控制台可以看到)

加入track-by属性:数据修改时,不变数据所在的dom不被重新渲染,已改变的数据所在dom才被重新渲染

track-by的两种使用方法:

1. 使用数据中某唯一字段,例如_uid

<div id="example">
 <p v-for="item in items" track-by="_uid">
 {{item.message}}
 </p>
 <input type="button" value="修改" @click="modify"/>
 <input type="button" value="还原" @click="reduct"/>
</div>
// 初始数据
items: [
 { _uid: '111111', message: '111' },
 { _uid: '222222', message: '222' },
 { _uid: '333333', message: '333' },
 { _uid: '444444', message: '444' },
 { _uid: '555555', message: '555' }
]
// 修改成
modify: function () {
 this.items = [
 { _uid: '111111', message: '111' },
 { _uid: '666666', message: '222' },
 { _uid: '333333', message: '3333' },
 { _uid: '888888', message: '4444' },
 { _uid: '999999', message: '5555' }
 ]
}

渲染效果如下图右(左边无track-by,右边有track-by),_uid和message都不变的情况下,才不被重新渲染,只有第一组符合条件。

简单理解vue中track-by属性

2. 使用$index,其它条件同上

<div id="example">
 <p v-for="item in items" track-by="$index">
 {{item.message}}
 </p>
 <input type="button" value="修改" @click="modify"/>
 <input type="button" value="还原" @click="reduct"/>
</div>

渲染效果如下图右,message的值第一、二条都没改变,所以一、二都没有重新渲染。

简单理解vue中track-by属性

模板中同时使用message和_uid时,只有两者都不变的情况下才不重新渲染,如下:

<div id="example">
 <p v-for="item in items" track-by="$index">
 {{item.message}} {{item._uid}}
 </p>
 <input type="button" value="修改" @click="modify"/>
 <input type="button" value="还原" @click="reduct"/>
</div>

简单理解vue中track-by属性

本文已被整理到了《Vue.js前端组件学习教程》,欢迎大家学习阅读。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
IE和Mozilla的兼容性汇总event
Aug 12 Javascript
js 完美图片新闻轮转效果,腾讯大粤网首页图片轮转改造而来
Nov 21 Javascript
html中的input标签的checked属性jquery判断代码
Sep 19 Javascript
javasctipt如何显示几分钟前、几天前等
Apr 30 Javascript
封装的dialog插件 基于bootstrap模态对话框的简单扩展
Aug 10 Javascript
jQuery实现简单漂亮的Nav导航菜单效果
Mar 29 jQuery
Vue和Bootstrap的整合思路详解
Jun 30 Javascript
微信小程序实现表单校验功能
Mar 30 Javascript
微信小程序顶部可滚动导航效果
Oct 31 Javascript
vue 实现在函数中触发路由跳转的示例
Sep 01 Javascript
关于vue项目中搜索节流的实现代码
Sep 17 Javascript
Element Card 卡片的具体使用
Jul 26 Javascript
javascript iframe跨域详解
Oct 26 #Javascript
JS日期对象简单操作(获取当前年份、星期、时间)
Oct 26 #Javascript
jQuery的ready方法实现原理分析
Oct 26 #Javascript
JavaScript中省略元素对数组长度的影响
Oct 26 #Javascript
BootStrap tab选项卡使用小结
Aug 09 #Javascript
Bootstrap按钮功能之查询按钮和重置按钮
Oct 26 #Javascript
AngularJS中如何使用echart插件示例详解
Oct 26 #Javascript
You might like
SONY ICF-SW55的电路分析
2021/03/02 无线电
thinkPHP模板引擎用法示例
2016/12/08 PHP
yii2局部关闭(开启)csrf的验证的实例代码
2017/07/10 PHP
详细解读php的命名空间(一)
2018/02/21 PHP
JavaScript 一行代码,轻松搞定浮动快捷留言-V2升级版
2010/04/02 Javascript
autoIMG 基于jquery的图片自适应插件代码
2011/03/12 Javascript
js iframe跨域访问(同主域/非同主域)分别深入介绍
2013/01/24 Javascript
日常收藏的jquery技巧
2015/12/02 Javascript
XMLHttpRequest Level 2 使用指南
2016/08/26 Javascript
jquery+css3问卷答题卡翻页动画效果示例
2016/10/26 Javascript
JavaScript原型继承_动力节点Java学院整理
2017/06/30 Javascript
使用jQuery实现页面定时弹出广告效果
2017/08/24 jQuery
微信小程序实现留言功能
2018/10/31 Javascript
vue-cli3项目展示本地Markdown文件的方法
2019/06/07 Javascript
JavaScript实现拖拽功能
2020/02/11 Javascript
JS如何在数组指定位置插入元素
2020/03/10 Javascript
[01:52]DOTA2完美大师赛Vega战队趣味视频——kpii老师小课堂
2017/11/25 DOTA
Python获取DLL和EXE文件版本号的方法
2015/03/10 Python
Python中Django框架下的staticfiles使用简介
2015/05/30 Python
python多线程方式执行多个bat代码
2016/06/07 Python
分享Python开发中要注意的十个小贴士
2016/08/30 Python
python下载图片实现方法(超简单)
2017/07/21 Python
Python 将pdf转成图片的方法
2018/04/23 Python
python判断变量是否为int、字符串、列表、元组、字典的方法详解
2020/02/13 Python
Pycharm无法打开双击没反应的问题及解决方案
2020/08/17 Python
美国在线精品家居网站:Burke Decor
2017/04/12 全球购物
Rakuten Kobo台湾:电子书、eReaders和Reading应用程式
2017/11/24 全球购物
美国美食礼品篮网站:Gourmet Gift Baskets
2019/12/15 全球购物
机电专业个人自荐信格式模板
2013/09/23 职场文书
体育教育毕业生自荐信
2014/06/29 职场文书
行政工作试用期自我评价
2014/09/14 职场文书
2014年扶贫帮困工作总结
2014/12/09 职场文书
2014年底工作总结
2014/12/15 职场文书
社区三八妇女节活动总结
2015/02/06 职场文书
2015年幼儿园中班工作总结
2015/04/25 职场文书
2019脱贫攻坚工作总结报告范本!
2019/08/06 职场文书