vue.js选择if(条件渲染)详解

一、总结

一句话总结:

v-if
 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>v-if</title>
<link rel="stylesheet" type="text/css" href="css/style.css">
<script type="text/javascript" src="js/vue.js"></script>
<script type="text/javascript">
window.onload = function() {
var dataList = {
innerText: '大家好,欢迎来到麦子学院!',
display: true
};
new Vue({
el: 'section',
data: dataList
}); setTimeout(function() {
dataList.display = false;
}, 5000);
};
</script>
</head>
<body>
<section>
<div v-if="display" class="head face">{{ innerText }}</div>
</section>
</body>
</html>

1、vue.js中如何进行if判断(条件渲染)?

v-if

<h1 v-if="ok">Yes</h1>  是以ok为键的键值对,控制ok这个键的值就可以动态控制显示效果

v-if是直接控制元素有还是没有,没有的话就是打开控制台看不到,和display:none的效果不一样

在字符串模板中,如 Handlebars,我们得像这样写一个条件块:

<!-- Handlebars 模板 -->
{{#if ok}}
<h1>Yes</h1>
{{/if}}

在 Vue.js,我们使用 v-if 指令实现同样的功能:

<h1 v-if="ok">Yes</h1>

也可以用 v-else 添加一个 "else" 块:

<h1 v-if="ok">Yes</h1>
<h1 v-else>No</h1>

详细示例:

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>v-if</title>
<link rel="stylesheet" type="text/css" href="css/style.css">
<script type="text/javascript" src="js/vue.js"></script>
<script type="text/javascript">
window.onload = function() {
var dataList = {
innerText: '大家好,欢迎来到麦子学院!',
display: true
};
new Vue({
el: 'section',
data: dataList
}); setTimeout(function() {
dataList.display = false;
}, 5000);
};
</script>
</head>
<body>
<section>
<div v-if="display" class="head face">{{ innerText }}</div>
</section>
</body>
</html>

2、vue比普通的字符串模板的条件替换好在哪?

简洁

在字符串模板中,如 Handlebars,我们得像这样写一个条件块:

<!-- Handlebars 模板 -->
{{#if ok}}
<h1>Yes</h1>
{{/if}}

在 Vue.js,我们使用 v-if 指令实现同样的功能:

<h1 v-if="ok">Yes</h1>

也可以用 v-else 添加一个 "else" 块:

<h1 v-if="ok">Yes</h1>
<h1 v-else>No</h1>

3、vue.js中的if如何控制多个标签的显示隐藏?

template v-if

因为 v-if 是一个指令,需要将它添加到一个元素上。但是如果我们想切换多个元素呢?此时我们可以把一个 <template> 元素当做包装元素,并在上面使用 v-if,最终的渲染结果不会包含它。

<template v-if="ok">
<h1>Title</h1>
<p>Paragraph 1</p>
<p>Paragraph 2</p>
</template>

4、template v-if和直接加父级div的v-if的区别是什么?

多 标签

template标签并不会显示在页面和控制台中,其实用div标签同样可以实现,但是用div会多一个div标签

5、vue.js中根据条件展示元素的标签是什么(和v-if相对的:v-show是display)?

v-show display

另一个根据条件展示元素的选项是 v-show 指令。用法大体上一样:

<h1 v-show="ok">Hello!</h1>

不同的是有 v-show 的元素会始终渲染并保持在 DOM 中。v-show 是简单的切换元素的 CSS 属性 display

注意 v-show 不支持 <template> 语法。

6、vue.js中if-else结构如何实现?

v-else

可以用 v-else 指令给 v-if 或 v-show 添加一个 "else 块":

<div v-if="Math.random() > 0.5">
Sorry
</div>
<div v-else>
Not sorry
</div>

v-else 元素必须立即跟在 v-if 或 v-show 元素的后面——否则它不能被识别。

7、v-if 和 v-show的区别在哪来?

存在 display

v-if是这个元素存在还是不存在,和php控制的标签的显示隐藏效果是一样的

v-show是控制的display是否为none

在切换 v-if 块时,Vue.js 有一个局部编译/卸载过程,因为 v-if 之中的模板也可能包括数据绑定或子组件。v-if 是真实的条件渲染,因为它会确保条件块在切换当中合适地销毁与重建条件块内的事件监听器和子组件。

v-if 也是惰性的:如果在初始渲染时条件为假,则什么也不做——在条件第一次变为真时才开始局部编译(编译会被缓存起来)。

相比之下,v-show 简单得多——元素始终被编译并保留,只是简单地基于 CSS 切换。

一般来说,v-if 有更高的切换消耗而 v-show 有更高的初始渲染消耗。因此,如果需要频繁切换 v-show 较好,如果在运行时条件不大可能改变 v-if 较好。

二、内容在总结中

参考:vue 条件渲染_w3cschool
https://www.w3cschool.cn/aekdgs/rb8h2dn1.html

 

vue.js选择if(条件渲染)详解的更多相关文章

  1. 浅析Vue.js 中的条件渲染指令

    1 应用于单个元素 Vue.js 中的条件渲染指令可以根据表达式的值,来决定在 DOM 中是渲染还是销毁元素或组件. html: <div id="app"> < ...

  2. vue.js学习笔记(二)——vue-router详解

    vue-router详解 原文链接:www.jianshu.com 一.前言 要学习vue-router就要先知道这里的路由是什么?为什么我们不能像原来一样直接用<a></a> ...

  3. Vue.js学习 Item7 -- 条件渲染与列表渲染

    v-if 在字符串模板中,如 Handlebars,我们得像这样写一个条件块: <!-- Handlebars 模板 --> {{#if ok}} <h1>Yes</h1 ...

  4. vue js库的条件渲染

    条件渲染 通过条件指令可以控制元素的创建(显示)或者销毁(隐藏),常用的条件指令如下: v-if v-if可以控制元素的创建或者销毁 <h1 v-if="ok">Yes ...

  5. 【 D3.js 选择集与数据详解 — 5 】 处理模板的应用

    在[选择集与数据 - 4]一文中,介绍了一个update.enter.exit的处理模板,这个模板很常用,本文将通过一个例子来讲解其使用方法. 1. 模板 复习一下上一章提到的模板. //绑定数据后, ...

  6. 【 D3.js 选择集与数据详解 — 4 】 enter和exit的处理方法以及处理模板

    绑定数据之后,选择集分为三部分:update.enter.exit.这三部分的处理办法是什么呢?本文将讲解其处理方法,以及一个常用的处理模板. 1. enter的处理方法 如果没有足够的元素,那么处理 ...

  7. 【 D3.js 选择集与数据详解 — 3 】 绑定数据的顺序

    data() 函数有两个参数,第一个是被绑定数据,第二个参数用于指定绑定的顺序.在数据需要更新的时候常常会用到. 默认的情况下,data()函数是按照索引号依次绑定数组各项的.第0个元素绑定数组的第0 ...

  8. 【 D3.js 选择集与数据详解 — 2 】 使用data()绑定数据

    D3 中绑定数据大多是由 data() 函数来完成的,它是怎样工作的,它与 datum() 有什么区别呢? data()函数能够将数组各项分别绑定到各元素上,而且能够设置绑定的规则.data()还能够 ...

  9. 【 D3.js 选择集与数据详解 — 1 】 使用datum()绑定数据

    选择集和数据的关系是 D3 最重要的基础,在[入门 - 第 7 章]时进行过些许讲解,对于要掌握好 D3 是远远不够的.故此开设一个新的分类,专门讨论选择集与数据的关系,包括数据绑定的使用和工作原理, ...

  10. Vue.js中学习使用Vuex详解

    在SPA单页面组件的开发中 Vue的vuex和React的Redux 都统称为同一状态管理,个人的理解是全局状态管理更合适:简单的理解就是你在state中定义了一个数据之后,你可以在所在项目中的任何一 ...

随机推荐

  1. ftp.GetResponse() 无法连接到远程服务器

    最近在做一个ftp上传下载以及在服务器上创建文件夹的工具 报 GetResponse() 无法连接到远程服务器  错误 明明 ip , 账户和 密码 用ftp 工具都能连接上 ,可是 代码就不行了,看 ...

  2. zw版【转发·台湾nvp系列Delphi例程】HALCON AngleLl

    zw版[转发·台湾nvp系列Delphi例程]HALCON AngleLl procedure TForm1.Button1Click(Sender: TObject);var Row1, Row2 ...

  3. python 爬虫煎蛋网

    import urllib.request import os from urllib import error import re import base64 def url_open(url): ...

  4. P3008 [USACO11JAN]道路和飞机Roads and Planes

    P3008 [USACO11JAN]道路和飞机Roads and Planes Dijkstra+Tarjan 因为题目有特殊限制所以不用担心负权的问题 但是朴素的Dijkstra就算用堆优化,也显然 ...

  5. c++标准之于gcc/vc/boost等实现相当于jsr规范之于sunjdk/ibmjdk/tomcat/weblogic等实现

    春节放假期间,一直在学习c++,越想越发现c++标准之于gcc/vc/boost等实现相当于jsr规范之于sunjdk/ibmjdk/tomcat/weblogic等实现

  6. Zigbee学习

    (一)Zigbee简介和开发环境快速建立(IAR) 1.我不是很清楚控制链条,对于Zigbee不是太清楚 答案:CC2530 芯片上集成了 8051 内核(增强型) 2.性能特点:低速率远距离,这造就 ...

  7. C简介与环境配置

    C 语言是一种通用的高级语言,最初是由丹尼斯·里奇在贝尔实验室为开发 UNIX 操作系统而设计的.C 语言最开始是于 1972 年在 DEC PDP-11 计算机上被首次实现. 在 1978 年,布莱 ...

  8. JavaScript常用操作,常用类

    算术运算符 重点关注 算数,赋值,逻辑运算符,三目运算符 <!DOCTYPE html> <html> <head> <meta charset=" ...

  9. bootstrap6 关于bs的使用总结

    在同一行中也可以有多个过了行的 "行", 即列的"总宽度"超宽度12. 即实现堆叠display:block和水平排列float的自动控制, 在div的clas ...

  10. 全网最详细Apache Kylin1.5安装(单节点)和测试案例

    转:http://blog.itpub.net/30089851/viewspace-2121221/ 微视频链接: Apache Kylin初识      1.版本(当前实验版本组合,版本一定要兼容 ...