Vue语法学习第五课——条件渲染
① v-if 、v-else-if 、v-else
<div v-if="type === 'A'">
A
</div>
<div v-else-if="type === 'B'">
B
</div>
<div v-else-if="type === 'C'">
C
</div>
<div v-else>
Not A/B/C
</div>
(1)v-if 指令用于条件性地渲染一块内容,这块内容只会在指令的表达式返回 truthy 值的时候被渲染。
(2)v-else-if 和 v-else 必须紧跟在 v-if 的元素之后
用于 <template> 可使用 key 管理可复用的元素:
<div id="app0">
<template v-if="loginType === 'username'">
<label>Username</label>
<input placeholder="Enter your username" key="username-input">
</template>
<template v-else>
<label>Email</label>
<input placeholder="Enter your email address" key="email-input">
</template><br/>
<button @click="changeLoginType">{{loginType}}</button>
</div>
var vm = new Vue({
el:"#app0",
data:{
loginType : "username"
},
methods : {
changeLoginType : function(){
if(this.loginType === 'username'){
this.loginType = "emailAddress";
}
else{
this.loginType = "username";
}
}
}
});
此时把这个 <template> 元素当做不可见的包裹元素,并使用v-if 。 最终的渲染结果不包含 <template> 元素。
Vue 提供了 key 这个属性来表达“这两个元素是完全独立的,不要复用它们”。独立元素的 key 值应是唯一值(不添加key值的label元素仍然会被高效地复用)。
② v-show
v-show 与 v-if 类似,都是用于根据条件展示元素,v-show 用法如下:
<h1 v-show="ok">Hello!</h1>
v-show 的元素始终会被渲染并保留在DOM中,其作用只是简单的切换元素的 css 属性的 display。
注:v-show 不支持 template 也没有对应的 v-else 。
③ v-show 和 v-if 对比
(1)v-if 会确保在切换过程中,条件块内的事件监听器和子组件适当地被销毁和重建。
v-if 是惰性的:只有在条件第一次变为真时才会开始渲染条件块。
(2)v-show 不论条件是否为真,总是会渲染元素,并且在条件的值改变时只做 CSS 的切换。
(3)v-if 具有更高的切换开销;v-show具有更高的初始渲染开销。
如果频繁切换应优先选择 v-show ;如果条件几乎不会改变时优先选择 v-if 。
Vue语法学习第五课——条件渲染的更多相关文章
- Vue语法学习第四课(2)——class与style的绑定
之前学到的指令 v-bind 在用于绑定class和style时,表达式结果可以是字符串.数组.对象. 一.绑定HTMLClass ① 对象语法 <div class="static& ...
- Vue语法学习第四课(1)——组件简单示例
在 Vue 里,一个组件本质上是一个拥有预定义选项的一个 Vue 实例. 设法将应用分割成了两个更小的单元.子单元通过 prop 接口与父单元进行了良好的解耦. <div id="ap ...
- Vue语法学习第三课——计算属性
模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的.在模板中放入太多的逻辑会让模板过重且难以维护.对于任何复杂逻辑,都应当使用计算属性. <div id="example&qu ...
- Go语言学习笔记五: 条件语句
Go语言学习笔记五: 条件语句 if语句 if 布尔表达式 { /* 在布尔表达式为 true 时执行 */ } 竟然没有括号,和python很像.但是有大括号,与python又不一样. 例子: pa ...
- Elasticsearch7.X 入门学习第五课笔记---- - Mapping设定介绍
原文:Elasticsearch7.X 入门学习第五课笔记---- - Mapping设定介绍 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本 ...
- react 入坑笔记(五) - 条件渲染和列表渲染
条件渲染和列表渲染 一.条件渲染 条件渲染较简单,使用 JavaScript 操作符 if 或条件运算符来创建表示当前状态的元素,然后让 React 根据它们来更新 UI. 贴一个小栗子: funct ...
- vue class与style绑定、条件渲染、列表渲染
列表渲染 根据我例子的需要,先来说下,列表渲染使用到的是v-for指令,需要使用 item in items 形式的特殊语法,items 是源数据数组并且 item 是数组元素迭代的别名,具体使用方法 ...
- python学习(五) 条件、循环和其他语句
第五章 条件.循环和其他语句 5.1 print和import的更多信息 5.1.1 使用逗号输出 >>> print('age',43,45) // 可以用逗号隔开 ...
- Vue语法学习第一课——插值
学习关于Vue的插值语法 ① 文本值 : "Mustache"语法,即双大括号 <span>Message:{{msg}}</span> 注:双大括号中的m ...
随机推荐
- Windows 循环根据进程名称 存在则删除该进程
@echo off:Looptasklist | findstr /i "javaw.exe" >nul 2>nul && (taskkill -f / ...
- python __getattra__()
官网解释: object.__getattr__(self, name) Called when an attribute lookup has not found the attribute in ...
- Axure下拉列表的交互事件 + 自定义元件库
下拉列表的交互事件: 场景:当点击第一个下拉列表框的江苏时,第二个列表框会显示江苏省的城市:当点击第一个下拉列表框的北京时,第二个列表框会显示北京市的区 操作:把第二个列表框设置为动态面板,设置为两种 ...
- 使用querybuilder做忽略大小写查询的例子
自定义Predicate: import com.day.cq.search.Predicate; import com.day.cq.search.eval.AbstractPredicateEva ...
- Letters Removing CodeForces - 899F (线段树维护序列)
大意: 给定字符串, 每次删除一段区间的某种字符, 最后输出序列. 类似于splay维护序列. 每次删除都会影响到后面字符的位置 可以通过转化为查询前缀和=k来查找下标. #include <i ...
- 20165309 《网络对抗技术》实验五:MSF基础应用
20165309 <网络对抗技术>实验五:MSF基础应用 1.基础问题回答 (1)什么是exploit? (2)什么是payload? (3)什么是encode? (4)离实战还缺些什么技 ...
- Markdown的基本语法记录
1.标题 示例代码: # 标题1 ## 标题2 ### 标题3 #### 标题4 ##### ... 效果: 标题1 标题2 标题3 标题4 ... 注:# 后面应保持空格 2. 分级标题 示例代码: ...
- Word中如何删除目录页的页码
---恢复内容开始--- word中插入目录之后想要为每页添加页码,如果我们直接添加页码的话会出现目录是第一页,正文部分的页码是从2开始而不是1,用下面的方法就可以解决 首先让文档中的所有符号可见 第 ...
- JavaJ2EE相关知识整理
1.Servlet的生命周期 在Web容器中,Servlet主要经历4个阶段 ①.加载Servlet:当Tomcat第一次访问Servlet的时候,Tomcat会负责创建Servle ...
- WCF服务无法访问DateTime类型的解决方法
在WCF服务中,如果entity类含有DateTime类型的字段,那么接口将会被执行两次,从而出现无法访问的情况.如下图所示: 原因是WCF中DateTime无法转换成序列化JSON字符串,DateT ...