① 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语法学习第五课——条件渲染的更多相关文章

  1. Vue语法学习第四课(2)——class与style的绑定

    之前学到的指令 v-bind 在用于绑定class和style时,表达式结果可以是字符串.数组.对象. 一.绑定HTMLClass ① 对象语法 <div class="static& ...

  2. Vue语法学习第四课(1)——组件简单示例

    在 Vue 里,一个组件本质上是一个拥有预定义选项的一个 Vue 实例. 设法将应用分割成了两个更小的单元.子单元通过 prop 接口与父单元进行了良好的解耦. <div id="ap ...

  3. Vue语法学习第三课——计算属性

    模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的.在模板中放入太多的逻辑会让模板过重且难以维护.对于任何复杂逻辑,都应当使用计算属性. <div id="example&qu ...

  4. Go语言学习笔记五: 条件语句

    Go语言学习笔记五: 条件语句 if语句 if 布尔表达式 { /* 在布尔表达式为 true 时执行 */ } 竟然没有括号,和python很像.但是有大括号,与python又不一样. 例子: pa ...

  5. Elasticsearch7.X 入门学习第五课笔记---- - Mapping设定介绍

    原文:Elasticsearch7.X 入门学习第五课笔记---- - Mapping设定介绍 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本 ...

  6. react 入坑笔记(五) - 条件渲染和列表渲染

    条件渲染和列表渲染 一.条件渲染 条件渲染较简单,使用 JavaScript 操作符 if 或条件运算符来创建表示当前状态的元素,然后让 React 根据它们来更新 UI. 贴一个小栗子: funct ...

  7. vue class与style绑定、条件渲染、列表渲染

    列表渲染 根据我例子的需要,先来说下,列表渲染使用到的是v-for指令,需要使用 item in items 形式的特殊语法,items 是源数据数组并且 item 是数组元素迭代的别名,具体使用方法 ...

  8. python学习(五) 条件、循环和其他语句

    第五章 条件.循环和其他语句 5.1 print和import的更多信息 5.1.1 使用逗号输出 >>> print('age',43,45)         // 可以用逗号隔开 ...

  9. Vue语法学习第一课——插值

    学习关于Vue的插值语法 ① 文本值 : "Mustache"语法,即双大括号 <span>Message:{{msg}}</span> 注:双大括号中的m ...

随机推荐

  1. Hadoop之HDFS的Shell操作

    1.基本语法 bin/hadoop fs 具体命令 或者 bin/hdfs dfs 具体命令 dfs 是 fs 的实现类. 2.命令大全 [hadoop@hadoop102 hadoop-]$ bin ...

  2. day7_子类的拷贝构造与拷贝赋值

  3. linux——文件操作

    1.创建文件夹 mkdir /myFolder 2.创建文件 touch hello.txt 3.复制文件 cp [-adfilprsu] 源文件 目标地址 4.移动 mv 源地址 目标地址 5.正向 ...

  4. 'ascii' codec can't decode byte 0xe5 in position 10: ordinal not in range(128)

    python2.7 向Excel中写入数据中含有中文就一直报错 'ascii' codec can't decode byte 0xe5 in position 10: ordinal not in ...

  5. 对mybatis的Handler 从使用角度介绍

    最近在开发中,涉及到了讲数据库查询的类型,直接转为java需要的类型. 由于对handler 理解不到位 和 使用不当.躺了一些坑. 主要涉及的有2种. 1.varchar 转 List<T&g ...

  6. exe所在路径

    procedure TForm1.btn1Click(Sender: TObject); begin //完整路径 E:\UsrSoft\Desktop\FileNameDemo\Project1.e ...

  7. web前端bug积累

    在将img转换为canvas时,在firefox中,如果img引用的svg使用了fill=(#id),此fill是无效的,可能导致整个转换失效,html2canvas.js也不行.chrome有效,其 ...

  8. git相关操作记录

    拉取远端并强制覆盖本地文件 有时候会出现想放弃本地修改的情况,那么只需要下面几行命令 git fetch --all git reset --hard origin/master git pull / ...

  9. VM Linux版本安装

    安装方法 https://www.jb51.net/softs/619194.html 1. 增加执行权限: sudo chmod +x VMware-Workstation-Full-14.1.2- ...

  10. 答题卡作文模块的一种方法-VSTO

    在开始做之前,首先百度了Word有没有简单的生成方法,果然有--页面布局->稿纸设置->方格式稿纸 效果如下图所示.很规范,但是不是答题卡所需要的,因为这样会把所有页面都设置为这样的稿纸. ...