简单理解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 相关文章推荐
My Desktop :) 桌面式代码
Dec 29 Javascript
Javascript学习笔记7 原型链的原理
Jan 11 Javascript
jQuery性能优化28条建议你值得借鉴
Feb 16 Javascript
js调用打印机打印网页字体总是缩小一号的解决方法
Jan 24 Javascript
jquery获取元素索引值index()示例
Feb 13 Javascript
jQuery响应enter键的实现思路
Apr 18 Javascript
jQuery实现时尚漂亮的弹出式对话框实例
Aug 07 Javascript
javascript深拷贝(deepClone)详解
Aug 24 Javascript
Vue.js仿微信聊天窗口展示组件功能
Aug 11 Javascript
vue实例中data使用return包裹的方法
Aug 27 Javascript
js代码规范之Eslint安装与配置详解
Sep 08 Javascript
Canvas跟随鼠标炫彩小球的实现
Apr 11 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
AMFPHP php远程调用(RPC, Remote Procedure Call)工具 快速入门教程
2010/05/10 PHP
Discuz批量替换帖子内容的方法(使用SQL更新数据库)
2014/06/23 PHP
php根据某字段对多维数组进行排序的方法
2015/03/07 PHP
PHP检测用户语言的方法
2015/06/15 PHP
详解WordPress中用于合成数组的wp_parse_args()函数
2015/12/18 PHP
php bootstrap实现简单登录
2016/03/08 PHP
PHP计算数组中值的和与乘积的方法(array_sum与array_product函数)
2016/04/01 PHP
PHP实现重载的常用方法实例详解
2017/10/18 PHP
csdn 论坛技术区平均给分功能
2009/11/07 Javascript
javascript 解析url的search方法
2010/02/09 Javascript
javascript 拷贝节点cloneNode()使用介绍
2014/04/03 Javascript
js中的caller和callee属性介绍和例子
2014/06/07 Javascript
js中this的用法实例分析
2015/01/10 Javascript
移动端js图片查看器
2016/11/17 Javascript
JS简单封装的图片无缝滚动效果示例【测试可用】
2017/03/22 Javascript
JSON在Javascript中的使用(eval和JSON.parse的区别)详细解析
2017/09/05 Javascript
详解 vue.js用法和特性
2017/10/15 Javascript
vue之a-table中实现清空选中的数据
2019/11/07 Javascript
arcgis.js控制地图地体的显示范围超出区域自动弹回(实现思路)
2021/01/28 Javascript
[14:21]VICI vs EG (BO3)
2018/06/07 DOTA
Python笔记(叁)继续学习
2012/10/24 Python
python实现的二叉树定义与遍历算法实例
2017/06/30 Python
python字符串和常用数据结构知识总结
2019/05/21 Python
Python导入父文件夹中模块并读取当前文件夹内的资源
2020/11/19 Python
微软开源最强Python自动化神器Playwright(不用写一行代码)
2021/01/05 Python
凯蒂·佩里个人女鞋品牌:Katy Perry Collections
2019/04/04 全球购物
size?法国官网:英国伦敦的球鞋精品店
2020/03/15 全球购物
英国鲜花递送:Blossoming Gifts
2020/07/10 全球购物
某公司Java工程师面试题笔试题
2016/03/27 面试题
优秀教师事迹简介
2014/02/02 职场文书
行政主管职责范本
2014/03/07 职场文书
副乡长民主生活会个人对照检查材料思想汇报
2014/10/01 职场文书
党员个人整改措施
2014/10/24 职场文书
优秀党员先进材料
2014/12/18 职场文书
应届生求职自荐信范文
2015/03/04 职场文书
XX部保密工作制度范本
2019/08/27 职场文书