简单理解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 相关文章推荐
十个迅速提升JQuery性能让你的JQuery跑得更快
Dec 10 Javascript
用innerhtml提高页面打开速度的方法
Aug 02 Javascript
JQuery触发事件例如click
Sep 11 Javascript
JavaScript获取DOM元素的11种方法总结
Apr 25 Javascript
js+css实现文字散开重组动画特效代码分享
Aug 21 Javascript
JQuery ztree带筛选、异步加载实例讲解
Feb 25 Javascript
jQuery的文档处理程序详解
May 10 Javascript
浅谈JavaScript中面向对象的的深拷贝和浅拷贝
Aug 01 Javascript
JavaScript实现的数字与字符串转换功能示例
Aug 23 Javascript
VUE2.0+ElementUI2.0表格el-table实现表头扩展el-tooltip
Nov 30 Javascript
vue 项目build错误异常的解决方法
Apr 22 Javascript
微信小程序实现倒计时功能
Nov 19 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使用Mysql事务实例解析
2014/09/08 PHP
Laravel框架学习笔记(二)项目实战之模型(Models)
2014/10/15 PHP
php压缩和解压缩字符串的方法
2015/03/14 PHP
cssQuery()的下载与使用方法
2007/01/12 Javascript
Mootools 1.2教程 选项卡效果(Tabs)
2009/09/15 Javascript
javascript对象之内置对象Math使用方法
2010/04/16 Javascript
JQUERY设置IFRAME的SRC值的代码
2010/11/30 Javascript
Javascript学习笔记之数组的遍历和 length 属性
2014/11/23 Javascript
Javascript堆排序算法详解
2014/12/03 Javascript
浅谈JavaScript Array对象
2014/12/29 Javascript
jQuery中:only-child选择器用法实例
2015/01/03 Javascript
深入理解JavaScript系列(39):设计模式之适配器模式详解
2015/03/04 Javascript
详解jQuery中的deferred对象的使用(一)
2016/05/27 Javascript
jQuery tagsinput在h5邮件客户端中应用详解
2016/09/26 Javascript
JQuery ZTree使用方法详解
2017/01/07 Javascript
AngularJs点击状态值改变背景色的实例
2017/12/18 Javascript
详解Node使用Puppeteer完成一次复杂的爬虫
2018/04/18 Javascript
对TypeScript库进行单元测试的方法
2019/07/18 Javascript
[54:53]完美世界DOTA2联赛PWL S2 GXR vs PXG 第二场 11.18
2020/11/18 DOTA
Python使用Mechanize模块编写爬虫的要点解析
2016/03/31 Python
python实现多线程的方式及多条命令并发执行
2016/06/07 Python
python django事务transaction源码分析详解
2017/03/17 Python
Python实现简单的获取图片爬虫功能示例
2017/07/12 Python
浅析python中numpy包中的argsort函数的使用
2018/08/30 Python
Anaconda+VSCode配置tensorflow开发环境的教程详解
2020/03/30 Python
Python 程序报错崩溃后如何倒回到崩溃的位置(推荐)
2020/06/23 Python
Pytorch实验常用代码段汇总
2020/11/19 Python
EGO Shoes美国/加拿大:英国时髦鞋类品牌
2018/08/04 全球购物
美国电力供应商店/电气批发商:USESI
2018/10/12 全球购物
巴西儿童时尚购物网站:Dinda
2019/08/14 全球购物
高中的职业生涯规划书
2013/12/28 职场文书
善意的谎言事例
2014/02/15 职场文书
心灵捕手观后感
2015/06/02 职场文书
会计继续教育培训心得体会
2016/01/19 职场文书
Python中如何处理常见报错
2022/01/18 Python
【海涛教你打DOTA】虚空假面第一视角骨弓3房29杀
2022/04/01 DOTA