简单理解vue中track-by属性

作者:littledew 时间:2024-04-30 10:21:05 

本文实例为大家解析了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前端组件学习教程》,欢迎大家学习阅读。

标签:vue,track,by
0
投稿

猜你喜欢

  • 浅谈tensorflow1.0 池化层(pooling)和全连接层(dense)

    2021-11-09 05:06:17
  • 详细分析Python collections工具库

    2022-06-28 01:18:57
  • Python零基础入门学习之输入与输出

    2023-07-22 09:50:12
  • 栅格:灵活应变

    2008-07-22 12:22:00
  • mysql全文搜索 sql命令的写法

    2024-01-25 04:45:38
  • mysql如何分别按年/月/日/周分组统计数据详解

    2024-01-17 14:28:01
  • linux centos7安装mysql8的教程

    2024-01-20 21:52:11
  • 用JMail、CDONTS发送邮件asp源码

    2007-09-24 15:58:00
  • 由浅入深讲解Javascript继承机制与simple-inheritance源码分析

    2024-05-10 14:06:50
  • C#查询SqlServer数据库并返回单个值的方法

    2024-01-24 08:05:52
  • 利用python对Excel中的特定数据提取并写入新表的方法

    2023-09-17 16:03:10
  • python中函数默认值使用注意点详解

    2021-01-26 12:36:44
  • Python 字符串转换为整形和浮点类型的方法

    2021-09-02 00:09:31
  • Python实用工具FuckIt.py介绍

    2022-11-25 01:41:26
  • python的变量与赋值详细分析

    2022-06-14 23:09:44
  • 解决pycharm运行程序出现卡住scanning files to index索引的问题

    2023-02-14 05:43:52
  • 如何在Python 中使用 join() 函数把列表拼接成一个字符串

    2022-10-15 14:58:38
  • Javascript技术栈中的四种依赖注入小结

    2024-04-18 10:54:08
  • 在 mysql 中 定义 数据库,表,列时,设定的各个的编码格式

    2010-11-11 11:58:00
  • python利用scatter绘画散点图

    2021-02-02 01:45:37
  • asp之家 网络编程 m.aspxhome.com