• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >vue > 简单理解vue中track-by属性

简单理解vue中track-by属性

作者:littledew 字体:[增加 减小] 来源:互联网 时间:2017-05-30

本文主要包含vue.js 计算属性,vue计算属性,vue自定义属性,vue 属性,vue is属性等相关知识,littledew 希望在学习及工作中可以帮助到您

本文实例为大家解析了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' }
 ]
}
</div>

渲染效果如下图右(左边无track-by,右边有track-by),_uid和message都不变的情况下,才不被重新渲染,只有第一组符合条件。

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>
</div>

渲染效果如下图右,message的值第一、二条都没改变,所以一、二都没有重新渲染。

模板中同时使用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>
</div>

本文已被整理到了《Vue.js前端组件学习教程》,欢迎大家学习阅读。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

</div>

您可能想查找下面的文章:

  • 用Vue.js实现监听属性的变化
  • Vue.js教程之计算属性
  • 简单理解vue中track-by属性

相关文章

  • 2017-05-30Vue2.0使用过程常见的一些问题总结学习
  • 2017-05-30vue.js开发环境搭建教程
  • 2017-05-30Vue2.0利用 v-model 实现组件props双向绑定的优美解决方案
  • 2017-05-30超简单的Vue.js环境搭建教程
  • 2017-05-30详解VueJs异步动态加载块
  • 2017-05-30vue实现添加标签demo示例代码
  • 2017-05-30Vue.use源码分析
  • 2017-05-30Vue表单实例代码
  • 2017-05-30基于vue的下拉刷新指令和滚动刷新指令
  • 2017-05-30Vue.js实现多条件筛选、搜索、排序及分页的表格功能

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • vue双向绑定的简单实现
    • 深入理解vue路由的使用
    • vue.js将unix时间戳转换为自定义时间格式
    • 超简单的Vue.js环境搭建教程
    • 利用纯Vue.js构建Bootstrap组件
    • vue.js初学入门教程(2)
    • vscode写vue模板--代码片段
    • Vue路由History mode模式中页面无法渲染的原因及解决
    • Vue表单验证插件的制作过程
    • 详解vue嵌套路由-query传递参数

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有