vue的条件渲染和列表渲染介绍
一、条件渲染
1、v-if语句
<div v-if="seen">hahahah</div> <!-- v-if插入或者删除元素的指令 -->

如果seen为true,则显示,如果seen为false,则不显示
2、v-if和v-else语句
<div v-if="seen">123</div>
<div v-else>456</div>
<!-- v-if,v-else语句 -->
如果seen为true,则显示123,如果seen不为真,则显示456
3、v-if、v-else-if、v-else语句
<div v-if="gread>90">success</div>
<div v-else-if="gread>60">ok</div>
<div v-else>failed</div> <!-- v-if,v-else-if,v-else语句 -->

如果gread大于90,则显示success,如果gread大于60,则显示ok,如果gread小于60,则显示failed
4、条件渲染配合template语句,template语句不会渲染到html中,只会包装多个html元素
<template v-if="seen">
<div>ni</div>
<div>hao</div>
<div>cuihaoran</div>
</template> <template v-else>
<div>ni</div>
<div>hao</div>
<div>zhouyongbo</div>
</template>
<!-- template语法结合v-if语句,同时可以控制多条html语句,template不会被渲染我html元素,仅仅用来包装多个元 -->
5、vue进行html元素切换,如果元素一样的,则不会重新创建和删除元素,比如我们下面的例子,我们在username的input标签中输入一个字符串,切换为passwd的input框,上一步输入的字符串还是会显示
<template v-if="logintype === 'username'">
<label>username:</label>
<input type="text" placeholder="用户名">
</template> <template v-else>
<label>passwd:</label>
<input type="text" placeholder="密码">
</template> <button v-on:click = "clickFunc">切换</button> <!-- 因为插入和删除元素是非常耗时的,所以如果有上面的例子,我们2个template标签中的input标签完全一样,所有当我们在username中输入一个用户名,然后点击切换后,passwd的输入框还是会有我们之前输入的信息,vue是复用之前的元素,不会 -->
<!-- 做新的增加和删除的操作 -->
我们看下clickFunc函数

我们在usernme这里输入一个1111

点击按钮切换为passwd,111还会保留

6、如果我们不想vue帮我们复用元素,我们需要为标签设置一个key
<template v-if="logintype === 'username'">
<label>username:</label>
<input type="text" placeholder="用户名" key="username">
</template> <template v-else>
<label>passwd:</label>
<input type="text" placeholder="密码" key="email">
</template> <button v-on:click = "clickFunc">切换</button> <!-- 如果我们不想复用,你就给重新创建和删除元素,那么vue提供了一个key的变量,我们可以用这个告诉vue,不要复用,重新给我创建和生成元素 -->

这样,用key标记2个元素是不一样的,vue就会给我们重新创建元素
7、v-show,如果为false,则会给元素加一个display=false的属性,如果为true,则会给元素加一个display=true的属性,而v-if如果为false,则dom都不会有这个元素
<div v-show="seen">v-show</div> <!-- v-show是控制元素是否显示的语句,不管v-show是否为真,这个元素都存在,如果为false,则display为true而已,元素还在dom中 --> <!-- 不支持tempalte和v-else语句 -->
8、v-if和v-for同时使用
<!-- v-if和v-show在一起使用 -->
<ul>
<li v-for="item in items" v-if="item.isok">{{item.text}}</li>
</ul>

二、列表渲染
1、v-for渲染一个数组的方式1
<ul>
<li v-for="item in items">{{item.text}}</li>
</ul>
2、v-for渲染一个数组的方式2,可以添加一个索引
<ul>
<li v-for="(item,index) in items">{{item.text}},{{index}}</li>
</ul>
<!-- item是列表中的元素,index是索引,这个顺序不能变,从0开始 -->
3、v-for渲染一个数组的方式2,in和被of替代
<ul>
<li v-for="(item,index) of items">{{item.text}},{{index}}</li>
</ul> <!-- 这个例子和上面的例子效果是一样的,in可以替换为of -->
4、v-for渲染一个对象方式1
<div>
<ol>
<li v-for="obj in pipi">{{obj}}</li> </ol> </div>
我们来看下pipi这个对象的

页面效果如下

5、v-for渲染一个对象的方式2
<div>
<ol>
<li v-for="(obj,value) in pipi">{{obj}}:{{value}}</li> </ol> </div>
页面效果如下

6、v-for渲染对象的方式3,同样可以渲染索引
<div>
<ol>
<li v-for="(obj,value,index) in pipi">{{obj}}:{{value}}:{{index}}</li> </ol> </div>
页面效果如下

7、v-for渲染一个组件
首先我们需要先定义一个组件

然后在dom中使用这个组件
<todu v-for="item in items" v-bind:name="item.text"></todu>
看下页面的效果

最后来说明一下

最后补充一个知识点

8、v-for的一段取值范围
<div>
<span v-for="n in 9">{{n}},</span> </div>
页面效果如下

9、v-for和template结合起来用
<div v-for="n in 10">
<template>
<label>username:</label>>
<input type="text" placeholder="username"> </template>>
</div>
页面效果

10、v-for结合计算属性进行数据处理后在循环
比如我们有一个数字的列表,我们只想显示其中的偶数

然后我们需要定义一个计算属性,将这个列表处理

然后我们需要新的值就可以了

如果我们想实现上面的效果,我们可以使用v-for搭配v-if来实现

页面效果如下

11、数组更新检测
数组的方法



12、对象更新检测

vue的条件渲染和列表渲染介绍的更多相关文章
- 【Vue】Vue框架常用知识点 Vue的模板语法、计算属性与侦听器、条件渲染、列表渲染、Class与Style绑定介绍与基本的用法
Vue框架常用知识点 文章目录 Vue框架常用知识点 知识点解释 第一个vue应用 模板语法 计算属性与侦听器 条件渲染.列表渲染.Class与Style绑定 知识点解释 vue框架知识体系 [1]基 ...
- 第六十三篇:Vue的条件渲染与列表渲染
好家伙, 1.条件渲染v-if 1.1.v-if基本使用 <body> <div id="app"> <p v-if="flag" ...
- Vue学习计划基础笔记(三)-class与style绑定,条件渲染和列表渲染
Class与style绑定.条件渲染和列表渲染 目标: 熟练使用class与style绑定的多种方式 熟悉v-if与v-for的用法,以及v-if和v-for一起使用的注意事项 class与style ...
- react 入坑笔记(五) - 条件渲染和列表渲染
条件渲染和列表渲染 一.条件渲染 条件渲染较简单,使用 JavaScript 操作符 if 或条件运算符来创建表示当前状态的元素,然后让 React 根据它们来更新 UI. 贴一个小栗子: funct ...
- vue.js循环for(列表渲染)详解
vue.js循环for(列表渲染)详解 一.总结 一句话总结: v-for <ul id="example-1"> <li v-for="item in ...
- Vue.js学习 Item7 -- 条件渲染与列表渲染
v-if 在字符串模板中,如 Handlebars,我们得像这样写一个条件块: <!-- Handlebars 模板 --> {{#if ok}} <h1>Yes</h1 ...
- angular,vue,react的基本语法—双向数据绑定、条件渲染、列表渲染、angular小案例
基本语法: 1.双向数据绑定 vue 指令:v-model="msg" react constructor(){ this.state{ msg:"双向数据绑定" ...
- vue 条件渲染与列表渲染
本文是对官方文档的整理 因为 v-if 是一个指令,所以必须将它添加到一个元素上.但是如果想切换多个元素呢?此时可以把一个 <template> 元素当做不可见的包裹元素,并在上面使用 v ...
- vue class与style绑定、条件渲染、列表渲染
列表渲染 根据我例子的需要,先来说下,列表渲染使用到的是v-for指令,需要使用 item in items 形式的特殊语法,items 是源数据数组并且 item 是数组元素迭代的别名,具体使用方法 ...
随机推荐
- python------面向对象进阶 Socket网络编程
一.Socket网络编程 1.七层模型,亦称OSI(Open System Interconnection)参考模型,是参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系 ...
- session token两种登陆方式
Session 和 Token 其实Session和Token总体上还是很相似的,但是也有以下区别: 1. 过期时间:Session的过期时间存在cookie的Max-age字段,Token的过期时间 ...
- addEventListener以及滑轮滑动事件的应用
addEventListener用于向元素添加事件,而其适用于较新版的IE浏览器(如IE9),对于IE6/7/8来说,应该用attachEvent 下面的代码即为向<img>元素添加事件 ...
- Spring Cloud(Dalston.SR5)--Zuul 网关-路由配置
Spring Cloud 在 Zuul 的 routing 阶段实现了几个过滤器,这些过滤器决定如何进行路由工作. 简单路由(SimpleHostRoutingFilter) 该过滤器运行后,会将 H ...
- SpringData JPA框架使用时出现JSON循环依赖解决方案
困扰许久的问题终于解决了,之前项目太赶,没有深入学习解决,不甘心,今天再次搭起架子试试,哈哈,终于解决! @ManyToOne(cascade={CascadeType.MERGE,CascadeTy ...
- problem: vue之数组元素中的数组类型值数据改变却无法在子组件视图更新问题
问题:给父组件上的一个数组中的某个元素中的数组类型值,添加值后,数据没有在子组件上更新. 对元素添加值之后,vue的数据其实已经更新了并传给了子组件,子组件中没有立即更新. 那么这里有个问题,在子组件 ...
- 前端-JavaScript1-5——JavaScript之变量的类型
5.1 概述 基本类型5种 number 数字类型 string 字符串类型 undefined undefined类型,变量未定义时的值,这个值自 ...
- perl open函数的使用
本文和大家重点讨论一下如何读写Perl文件,主要包括打开.关闭Perl文件,读写Perl文件,Perl文件的状态,命令行参数和打开管道六部分内容,希望通过本文的学习你对读写Perl文件有深刻的认识. ...
- Java中的权限修饰符private、protected、public
java中的修饰符分类: 权限修饰符: private, default, protected, public 状态修饰符: static, final 抽象修饰符: abstract 权限修饰符 我 ...
- 涂抹mysql笔记-InnoDB/MyISAM及其它各种存储引擎
存储引擎:一种设计的存取和处理方式.为不同访问特点的表对象指定不同的存储引擎,可以获取更高的性能和处理数据的灵活性.通常是.so文件,可以用mysql命令加载它. 查看当前mysql数据库支持的存储引 ...