简单理解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的消息提示插件 DivAlert之旅(二)
Apr 01 Javascript
ReactNative-JS 调用原生方法实例代码
Oct 08 Javascript
jQuery右下角悬浮广告实例
Oct 17 Javascript
Vue组件通信实践记录(推荐)
Aug 15 Javascript
解析Vue2 dist 目录下各个文件的区别
Nov 22 Javascript
vue.js 微信支付前端代码分享
Feb 10 Javascript
详解Angular如何正确的操作DOM
Jul 06 Javascript
Layui给数据表格动态添加一行并跳转到添加行所在页的方法
Aug 20 Javascript
解决vue项目使用font-awesome,build后路径的问题
Sep 01 Javascript
Spring boot 和Vue开发中CORS跨域问题解决
Sep 05 Javascript
vue+iview 实现可编辑表格的示例代码
Oct 31 Javascript
vue中格式化时间过滤器代码实例
Apr 17 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实现与erlang的二进制通讯实例解析
2014/07/23 PHP
PHP链接MySQL的常用扩展函数
2014/10/23 PHP
PHP根据图片色界在不同位置加水印的方法
2015/07/01 PHP
麦鸡的TAB切换功能结合了javascript和css
2007/12/17 Javascript
javascript之querySelector和querySelectorAll使用说明
2011/10/09 Javascript
JS 实现获取打开一个界面中输入的值
2013/03/19 Javascript
兼容ie、firefox的图片自动缩放的css跟js代码分享
2013/08/12 Javascript
JavaScript中如何通过arguments对象实现对象的重载
2014/05/12 Javascript
JavaScript获取页面中表单(form)数量的方法
2015/04/03 Javascript
使用JavaScript脚本判断页面是否在微信中被打开
2016/03/06 Javascript
AngularJS 遇到的小坑与技巧小结
2016/06/07 Javascript
jQuery实现立体式数字滚动条增加效果
2016/12/21 Javascript
JS遍历对象属性的方法示例
2017/01/10 Javascript
深入理解Vue生命周期、手动挂载及挂载子组件
2017/09/27 Javascript
Nodejs使用Mongodb存储与提供后端CRD服务详解
2018/09/04 NodeJs
vue3.0 CLI - 3.2 路由的初级使用教程
2018/09/20 Javascript
解决Idea、WebStorm下使用Vue cli脚手架项目无法使用Webpack别名的问题
2019/10/11 Javascript
js实现提交前对列表数据的增删改查
2020/01/16 Javascript
Nest.js环境变量配置与序列化详解
2021/02/21 Javascript
python从入门到精通(DAY 2)
2015/12/20 Python
Python中字符串的处理技巧分享
2016/09/17 Python
Python获取某一天是星期几的方法示例
2017/01/17 Python
Python通过调用mysql存储过程实现更新数据功能示例
2018/04/03 Python
python3中函数参数的四种简单用法
2018/07/09 Python
Python3批量生成带logo的二维码方法
2019/06/24 Python
Python 词典(Dict) 加载与保存示例
2019/12/06 Python
tensorflow 实现从checkpoint中获取graph信息
2020/02/10 Python
CSS3实现的闪烁跳跃进度条示例(附源码)
2013/08/19 HTML / CSS
GUESS德国官网:美国牛仔服装品牌
2017/02/14 全球购物
特色蛋糕店创业计划书
2014/01/28 职场文书
劳动实践课感言
2014/02/01 职场文书
大学生自我鉴定书
2014/03/24 职场文书
团干部培训方案
2014/06/03 职场文书
廉洁自律承诺书范文
2015/04/28 职场文书
Python中相见恨晚的技巧
2021/04/13 Python
如何用JavaScipt测网速
2021/05/09 Javascript