列表渲染
v-for
template v-for
数组变动检查
变异方法
替换数组
track-by
track-by $index
问题
对象 v-for
值域 v-for
显示过滤/排序的结果
1、v-for指令 是基于一个 数组 渲染列表。这个指令使用特殊的语法 ,形式为 item in items,items是数组数据,item是当前数组元素的别名。

另一种循环方式 为索引制定一个别名。

还一个是v-for=。。。of。。。

2、template v-for 模板便利
用于渲染一个包含多个元素的块。
3、变异方法。
vue.js包装了被观察数组的变异方法,故他们能触发视图更新。被包装的方法有:
push();尾部添加,返回新长度
pop();尾部删除,返回新长度。
shift();删除并返回数组的第一个元素。
unshift();在头部添加一个元素,返回长度
splice()
例如Vm.items.name(message:'bazz');

filter过滤

4、track-by 优化已有的。
有时候需要全新对象(例如通过API调用创建的对象)替换数据。
因为v-for默认通过数据的特征来决定对已有作用于和DO没元素的复用程度,这可能导致重新渲染整个列表。但是,如果每个对象都有一个唯一ID得属性,
便可以使用track-by特性给Vue.js一个提醒,vue.js因为能尽可能的复用已有实例。
例子:
如果vue.js遇到一个包含_uid:‘88f869d’的新对象,
它知道它可以服用这个已有对象的作用域和DOM元素。
 
简单的讲,就是v-for遍历model时,vue.js会建立索引,这个索引要求是不重复,不然会出错,track-by=“_uid”,使用者制定索引是哪个部分。

track-by $index
track-by=‘$index’,它强制让v-for进入原位更新模式:
片断不会被移动,而是简单的以对应索引的新值刷新。这种模式也能处理数据数组中重复的值。
但是这种模式下,dom节点不在映射数组元素的顺序的改变,也不能同步临时状态如input输入的值及组建的私有状态。因此如果v-for包含input元素或者子组件,要小心使用track-by=“$index”;

5、vue.js不能做到的:
(1)不能直接用索引设置元素:vm.item[0]={}; 用$set(索引,’新键名‘,’新值‘);
(2)不能修改数据长度:vm.item.length=0; 用items={};空数组替换
(3)$.remove(item);删除某个数据;

6、v-for不仅可以遍历数组,还可以遍历对象。
v-for遍历数组:索引$index;
v-for遍历对象:索引$key;

同理 也可以给键名$key起一个别名: v-for=“(key , val) in object”;
 
v-for也可以接受一个整数,因此它将重复模板次数。

7、显示过滤/排序结果
不是及修改或重置原始数据,有2方法:
(1)创建一个计算属性,返回过滤/排序的数组;
(2)使用内置的过滤器 filterBy和orderBy。
两者的比较:
计算属性有更好的控制力,也更灵活。因为他是全功能javascript。
过滤器使用方便。

filterBy和orderBy:

 
 
 
 
 

vue.js 第八课的更多相关文章

  1. vue.js第六课

    class与style绑定 绑定HTML class 对象语法 数组语法 绑定内联样式 对象语法 数组语法 自动添加前缀 1.class与style绑定. 数据绑定一个常见需求就是 操作元素的clas ...

  2. vue.js 第五课

    计算属性 1.基础例子 2.计算属性 vs $watch 3.计算 setter 4.计算属性开发实务demo   1.计算属性 computed( 电脑computer) (区别普通属性) 计算属性 ...

  3. vue.js 第四课

    (1).插值:在view层上显示model的资料. (2).绑定表达式:在view层上 执行js命令. (3).指令:在view层上 执行写好的功能. (4).缩写:v-bind 绑定 特性 v-on ...

  4. vue.js 第三课

    1.构造器 constructor 2.属性和方法 properties methods 3.实例生命周期 instance_lifecycle   1.vue.js都是通过 var vm=new V ...

  5. Vue.js入门第一课

    这个好像比ANGULAR.JS要轻量一些,看看. <!DOCTYPE html> <html> <head> <meta charset="utf- ...

  6. vue.js第七课

    条件渲染 v-if template v-if v-show v-else v-if 与 v-show   handlebars.js 1.v-if 如果我们想一次 控制 多个元素呢? 我们可以吧一个 ...

  7. vue.js 第十课-第十六课

    第十课: http://note.youdao.com/noteshare?id=25b5ba45286464856f21eb4b6b391ecd&sub=19C4429995384F72BD ...

  8. vue.js学习(第一课)

    学习资料 来自台湾小凡! vue.js是javascript的一个库,只专注于UI层面,核心价值永远是 API的简洁. 第一课: 不支持IE8. 1.声明式渲染: el元素的简称 element : ...

  9. Python学习二十八周(vue.js)

    一.指令 1.一个例子简单实用vue: 下载vue.js(这里实用1.0.21版本) 编写html代码: <!DOCTYPE html> <html lang="en&qu ...

随机推荐

  1. Docker镜像加速,设置国内源

    源地址设置 在 /etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件) { "registry-mirrors": [ "https ...

  2. 数星星 Stars

    问题 A: 数星星 Stars 时间限制: 1 Sec  内存限制: 128 MB[命题人:admin] 题目描述 输入 第一行一个整数 N,表示星星的数目: 接下来 N 行给出每颗星星的坐标,坐标用 ...

  3. Java - Java 命令行简介: 选项, 属性, 参数

    概述 简单介绍一下 java 命令行相关的参数及属性 1. java 命令行 基本 命令 > java <mainClass> 描述 执行 Java 类 需要准备好编译完成的 mai ...

  4. CentOS7安装jdk教程

    引言Oracle JDK和OpenJDK的简单介绍Oracle JDK是基于Java标准版规范实现的,以二进制产品的形式发布.它支持多种操作系统,如Windows,Linux,Solaris,MacO ...

  5. Python3.6打开EAIDK-610开发板(计算机通用)摄像头拍照并保存

    环境:python3.6 代码: import cv2 import os output_dir ='/home/openailab/Desktop/huahui/came/' i = cap = c ...

  6. LoadRunner通过验证参数判断事物的成功与失败

    if(atoi(lr_eval_string("{Param_DiscountID}")) > 0){ //lr_message("多机多酒:%s",lr ...

  7. tomcat服务器启动执行的两个方法

    第一 SetApplicationContext(需要继承ApplicationContextAware)重写 第二 ContextInitialize(需要继承servleContet)重写,(co ...

  8. 91云服务器网络带宽测试,IO测试、全国ping测试

    91yun服务器测试一键包介绍 一键包主要是为了让大家快速对服务器的基本状况有一个了解.考虑到天朝的网络出口问题,所以这个一键包更加偏向网络的测试. 影响测试耗时主要是下载,整个测试如果是能跑满100 ...

  9. Smart License

    思科启动了通过构建思科智能软件管理器门户来简化客户许可管理的计划. 它可以帮助客户了解他们购买的许可证以及他们使用的许可证. 其他各种思科产品已经启用Smart Enabled,随着此版本(我这里学习 ...

  10. 洛谷 P1076 寻宝(模拟 && 剪枝)

    嗯... 题目链接:https://www.luogu.org/problem/P1076 这道题的题意首先太难理解...并且细节太多... 可以用b[i][j]记录每个指示牌上的数字,a[i][j] ...