当前位置: 首页 > news >正文

【第五节】列表渲染

文章目录

  • 列表渲染
    • v-for
    • template v-for
    • 数组变动检测
      • 变异方法 替换数组
      • track-by
      • track-by $index
      • 问题
    • 对象 v-for
    • 值域 v-for
    • 显示过滤/排序的结果

列表渲染

v-for

使用 v-for 指令基于一个数组渲染一个列表。这个指令使用特殊的语法,形式为 item in items ,items是数据数组, item 是当前数组元素的别名:
在这里插入图片描述
另外,你可以为索引指定一个别名(如果 v-for 用于一个对象,则可以为对象的键指定一个别名)

<div v-for="(index,item)in items">
{{ index}}{{ item.message }}
</div>

从 1.0.17 开始可以使用 of 分隔符,更接近 JavaScript 遍历器语法
HTML

<div v-for="item of items"></div>

在这里插入图片描述

template v-for

类似于 template v-if ,也可以将 v-for 用在 标签上,以渲染一个包含多个元素的块。例如:

<ul>
<template v-for="item in items">
<li>{{ item.msg }}</li>
<li class="divider"></li>
</template>
</ul>

在这里插入图片描述

数组变动检测

Vue.js 包装了被观察数组的变异方法,故它们能触发视图更新。被包装的方法有:

push()
pop()
shift()
unshift()
splice()
sort()
reverse()

打开浏览器的控制台,用这些方法修改上例的items 数组。例如:example1.items.push({ message:'Baz'})
在这里插入图片描述

变异方法 替换数组

变异方法,如名字所示,修改了原始数组。相比之下,也有非变异方法,如filter(),concat()slice(),不会修改原始数组而是返回一个新数组。在使用非变异方法时可以直接用新数组替换旧数组:

example1.items =example1.items.filter(function(item){return item.message.match(/Foo/)

可能觉得这将导致 Vue.js 弃用已有 DOM 并重新渲染整个列表–幸运的是并非如此。Vue.js 实现了一些启发算法,以最大化复用 DOM 元素,因而用另一个数组替换数组是一个非常高效的操作。
在这里插入图片描述
在这里插入图片描述

track-by

有时需要用全新对象(例如通过 API调用创建的对象)替换数组。因为 v-for默认通过数据对象的特征来决定对已有作用域和 DOM 元素的复用程度,这可能导致重新渲染整个列表。但是,如果每个对象都有一个唯一ID 的属性,便可以使用 track-by 特性给 vue.js个提示,Vue.js 因而能尽可能地复用已有实例。
例如,假定数据为:

{items :[{_uid:'88f869d',...},{_uid :'7496c10',...}]}
http://www.dtcms.com/a/296736.html

相关文章:

  • p5.js 椭圆的用法:从基础到创意应用
  • Java 实现 B/S 架构详解:从基础到实战,彻底掌握浏览器/服务器编程
  • 北京-4年功能测试2年空窗-报培训班学测开-第五十九天-模拟面试前
  • 前端学习日记(十二)
  • MongoDB常用场景
  • jax study notes[19]
  • 【Kubernetes】通过 YAML 创建 nginx Pod 并验证,流程总结
  • Python编程进阶知识之第五课处理数据(matplotlib)
  • rust流程控制
  • Code Composer Studio:CCS 设置代码折叠
  • 20.OSPF路由协议·单区域
  • 枚举右,维护左高级篇
  • [明道云] -基础入门1- 什么是明道云 HAP 平台?
  • 【基础篇一】Python Web开发的演进历程(CGI → WSGI → ASGI)
  • 100条SQL语句分类精讲:从基础到进阶的实操指南
  • Matplotlib详细教程(基础介绍,参数调整,绘图教程)
  • 支付宝小程序 SEO 优化指南:从流量获取到商业转化
  • 【Linux】常用命令(一)
  • LockscreenCredential 类方法详解
  • 机器学习入门与经典knn算法表文解析
  • 模型的存储、加载和部署
  • 天邑TY1613_S905L3SB_安卓9-高安版和非高安版-线刷固件包
  • SSE与Websocket有什么区别?
  • P1049 [NOIP 2001 普及组] 装箱问题
  • 数据采集分析:从信息洪流中掘金的科学与艺术
  • Linux和Windows基于V4L2和TCP的QT监控
  • 欧姆龙CJ1MPLC配以太网模块,打造上位机、触摸屏、变频器高效通讯生态系统案例
  • 词嵌入维度与多头注意力关系解析
  • C++课设实践项目:C++构建的学籍管理系统
  • 【阿里云-ACP-1】疑难题解析