简单理解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和jquery对dom节点的操作(创建/追加)
Apr 21 Javascript
javascript ajax 仿百度分页函数
Oct 29 Javascript
jQuery使用before()和after()在元素前后添加内容的方法
Mar 26 Javascript
JS获取图片lowsrc属性的方法
Apr 01 Javascript
javascript伸缩菜单栏实现代码分享
Nov 12 Javascript
AngularJS入门教程之Select(选择框)详解
Jul 27 Javascript
JS正则子匹配实例分析
Dec 22 Javascript
利用Node.js了解与测量HTTP所花费的时间详解
Sep 22 Javascript
JavaScript实现离开页面前提示功能【附jQuery实现方法】
Sep 26 jQuery
JS中promise化微信小程序api
Apr 12 Javascript
30分钟快速实现小程序语音识别功能
Nov 27 Javascript
Vue快速实现通用表单验证的示例代码
Jan 09 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中autoload的用法总结
2013/11/08 PHP
Codeigniter框架实现获取分页数据和总条数的方法
2014/12/05 PHP
js 取时间差去掉周六周日实现代码
2012/12/25 Javascript
Javascript事件实例详解
2013/11/06 Javascript
jQuery中removeProp()方法用法实例
2015/01/05 Javascript
jQuery调用ajax请求的常见方法汇总
2015/03/24 Javascript
使用HTML+CSS+JS制作简单的网页菜单界面
2015/07/27 Javascript
jQuery实现图片轮播特效代码分享
2015/09/15 Javascript
谈一谈javascript中继承的多种方式
2016/02/19 Javascript
JS实现左右无缝轮播图代码
2016/05/01 Javascript
全面解析Bootstrap中Carousel轮播的使用方法
2016/06/13 Javascript
js带闹铃功能的倒计时代码
2016/09/29 Javascript
浅谈Node.js轻量级Web框架Express4.x使用指南
2017/05/03 Javascript
SpringMVC+bootstrap table实例详解
2017/06/02 Javascript
Node.js log4js日志管理详解
2018/07/31 Javascript
vue 实现input表单元素的disabled示例
2019/10/28 Javascript
简介JavaScript错误处理机制
2020/08/04 Javascript
[02:40]DOTA2殁境神蚀者 英雄基础教程
2013/11/26 DOTA
[01:37]PWL S2开团时刻DAY1&2——这符有毒
2020/11/20 DOTA
Python计算三维矢量幅度的方法
2015/06/15 Python
Python探索之SocketServer详解
2017/10/28 Python
python合并同类型excel表格的方法
2018/04/01 Python
Python requests库用法实例详解
2018/08/14 Python
python 使用装饰器并记录log的示例代码
2019/07/12 Python
PyPDF2读取PDF文件内容保存到本地TXT实例
2020/05/12 Python
如何从csv文件构建Tensorflow的数据集
2020/09/21 Python
利用Python发送邮件或发带附件的邮件
2020/11/12 Python
探究 canvas 绘图中撤销(undo)功能的实现方式详解
2018/05/17 HTML / CSS
木工主管岗位职责
2013/12/08 职场文书
区域销售经理岗位职责
2013/12/10 职场文书
水电工岗位职责
2015/02/14 职场文书
工程技术负责人岗位职责
2015/04/13 职场文书
2015年办税服务厅工作总结
2015/07/23 职场文书
iPhone13 Pro外观确定,升级4800万镜头,4月20日发新品
2021/04/15 数码科技
据Python爬虫不靠谱预测可知今年双十一销售额将超过6000亿元
2021/11/11 Python
Python实现照片卡通化
2021/12/06 Python