简单理解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 相关文章推荐
[原创]后缀就扩展名为js的文件是什么文件
Dec 06 Javascript
jQuery判断复选框是否勾选的原理及示例
May 21 Javascript
jQuery+CSS3+Html5实现弹出层效果实例代码(附源码下载)
May 16 Javascript
JS原型链怎么理解
Jun 27 Javascript
jQuery实现的放大镜效果示例
Sep 13 Javascript
javascript中闭包概念与用法深入理解
Dec 15 Javascript
canvas实现图像截取功能
Feb 06 Javascript
微信小程序 合法域名校验出错详解及解决办法
Mar 09 Javascript
Angularjs的启动过程分析
Jul 18 Javascript
基于javaScript的this指向总结
Jul 22 Javascript
全新打包工具parcel零配置vue开发脚手架
Jan 11 Javascript
JsChart组件使用详解
Mar 04 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
MySQL相关说明
2007/01/15 PHP
PHP版微信公众平台红包API
2015/04/02 PHP
PHP中使用substr()截取字符串出现中文乱码问题该怎么办
2015/10/21 PHP
php的扩展写法总结
2019/05/14 PHP
JS 文件大小判断的实现代码
2010/04/07 Javascript
关于jQuery $.isNumeric vs. $.isNaN vs. isNaN
2013/04/15 Javascript
javascript结合html5 canvas实现(可调画笔颜色/粗细/橡皮)的涂鸦板
2013/04/27 Javascript
JavaScript常用全局属性与方法记录积累
2013/07/03 Javascript
javascript实现数字+字母验证码的简单实例
2014/02/10 Javascript
使用js检测浏览器是否支持html5中的video标签的方法
2014/03/12 Javascript
如何改进javascript代码的性能
2015/04/02 Javascript
JavaScript中的toLocaleLowerCase()方法使用详解
2015/06/06 Javascript
JavaScript实现显示函数调用堆栈的方法
2016/04/21 Javascript
JS阻止事件冒泡行为和闭包的方法
2016/06/16 Javascript
Bootstrap CSS组件之大屏幕展播
2016/12/17 Javascript
vue上传图片组件编写代码
2017/07/26 Javascript
利用js-cookie实现前端设置缓存数据定时失效
2019/06/18 Javascript
vue实现日历表格(element-ui)
2020/09/24 Javascript
微信小程序实现星星评分效果
2020/11/01 Javascript
Python编写的com组件发生R6034错误的原因与解决办法
2013/04/01 Python
python机器学习理论与实战(六)支持向量机
2018/01/19 Python
python操作excel的包(openpyxl、xlsxwriter)
2018/06/11 Python
Python列表解析配合if else的方法
2018/06/23 Python
python 实现UTC时间加减的方法
2018/12/31 Python
PyTorch加载自己的数据集实例详解
2020/03/18 Python
基于python实现简单网页服务器代码实例
2020/09/14 Python
使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二)
2020/10/12 Python
python和C++共享内存传输图像的示例
2020/10/27 Python
PyCharm+Miniconda3安装配置教程详解
2021/02/16 Python
Answear匈牙利:来自全球200多个知名时尚品牌
2017/04/21 全球购物
Joie官方网上商店:购买服装和女装配饰
2018/06/05 全球购物
复古服装:RetroStage
2019/05/10 全球购物
面包店的创业计划书范文
2014/01/16 职场文书
应聘医药销售自荐书范文
2014/02/08 职场文书
创先争优活动心得体会
2014/09/04 职场文书
python 实现图片特效处理
2022/04/03 Python