简单理解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 相关文章推荐
prototype 学习笔记整理
Jul 17 Javascript
javascript预览上传图片发现的问题的解决方法
Nov 25 Javascript
js+css使DIV始终居于屏幕中间 左下 左上 右上 右下的代码集合
Mar 10 Javascript
jQuery插件开发全解析
Oct 10 Javascript
JavaScript中的方法重载实例
Mar 16 Javascript
jQuery实现不断闪烁文字的方法
May 15 Javascript
微信小程序支付之c#后台实现方法
Oct 19 Javascript
使用vue-route 的 beforeEach 实现导航守卫(路由跳转前验证登录)功能
Mar 22 Javascript
Vue中的vue-resource示例详解
Nov 02 Javascript
一步步教你利用Docker设置Node.js
Nov 20 Javascript
layui按条件隐藏表格列的实例
Sep 19 Javascript
Html5生成验证码的示例代码
May 10 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
微信支付PHP SDK之微信公众号支付代码详解
2015/12/09 PHP
深入解析PHP的Yii框架中的event事件机制
2016/03/17 PHP
Yii2.0表关联查询实例分析
2016/07/18 PHP
Thinkphp实现短信验证注册功能
2016/10/18 PHP
PHP+mysql实现从数据库获取下拉树功能示例
2017/01/06 PHP
Yii框架通过请求组件处理get,post请求的方法分析
2019/09/03 PHP
js操作CheckBoxList实现全选/反选(在客服端完成)
2013/02/02 Javascript
js日期、星座的级联显示代码
2014/01/23 Javascript
为开发者准备的10款最好的jQuery日历插件
2014/02/04 Javascript
JavaScript操作Cookie详解
2015/02/28 Javascript
JavaScript实现向OL列表内动态添加LI元素的方法
2015/03/21 Javascript
jQuery右下角旋转环状菜单特效代码
2015/08/10 Javascript
微信小程序-详解数据缓存
2016/11/24 Javascript
jQuery实现文档树效果
2017/02/20 Javascript
js仿淘宝商品放大预览功能
2017/03/15 Javascript
node.js平台下的mysql数据库配置及连接
2017/03/31 Javascript
jQuery获取table表中的td标签(实例讲解)
2017/07/28 jQuery
微信小程序 配置顶部导航条标题颜色的实现方法
2017/09/20 Javascript
小程序关于请求同步的总结
2019/05/05 Javascript
详解vue-video-player使用心得(兼容m3u8)
2019/08/23 Javascript
Node.JS用纯JavaScript生成图片或滑块式验证码功能
2019/09/12 Javascript
小程序自定义模板实现吸顶功能
2020/01/08 Javascript
JS表格的动态操作完整示例
2020/01/13 Javascript
python中的装饰器详解
2015/04/13 Python
Flask解决跨域的问题示例代码
2018/02/12 Python
OpenCV HSV颜色识别及HSV基本颜色分量范围
2019/03/22 Python
python 求1-100之间的奇数或者偶数之和的实例
2019/06/11 Python
python实现树的深度优先遍历与广度优先遍历详解
2019/10/26 Python
numpy.transpose()实现数组的转置例子
2019/12/02 Python
Python实现图像去噪方式(中值去噪和均值去噪)
2019/12/18 Python
python 一维二维插值实例
2020/04/22 Python
Python中实现输入一个整数的案例
2020/05/03 Python
英国婴儿和儿童服装网站:Vertbaudet
2018/04/02 全球购物
会计员岗位职责
2014/03/15 职场文书
2015年政协委员工作总结
2015/05/20 职场文书
个人落户申请书怎么写?
2019/06/28 职场文书