第7集丨Vue 江湖 —— 条件渲染

目录

  • 一、v-show
  • 二、v-if
    • 2.1 基本使用
    • 2.2 条件渲染分组
    • 2.3 与 v-else-if、v-else 结合使用
  • 三、v-if vs v-show
  • 四、测试案例

本节条件渲染所涉及到的指令有:

  • v-show
  • v-if
  • v-else-if
  • v-else

一、v-show

1. 用法

  • 语法: v-show=" 表达式",适用于切换频率较高的场景
  • <h2 v-show="false">欢迎来到:{{name}}</h2>
  • <h2 v-show="1===1">欢迎来到:{{name}}</h2>
<div id="root"><h2 v-show="false">欢迎来到:{{name}}</h2><h2 v-show="1===1">欢迎来到:{{name}}</h2>
</div>
<script>new Vue({el:'#root',data:{name:'Vue',n:0}})
</script>

2. 页面生成的DOM结构如下


在这里插入图片描述


上述的截图中,我们可以看到v-show指令是通过设置display: none;来设置元素的可见性。

由此我们可以得出一个结论:带有 v-show 的元素始终会被渲染并保留在 DOM 中。v-show 只是简单地切换元素的 CSS property display

3. 注意

  • v-show 不支持 <template> 元素,也不支持 v-else

二、v-if

v-if 指令用于条件性地渲染一块内容。这块内容只会在指令的表达式返回 true值的时候被渲染。

2.1 基本使用

<h2 v-if="false">欢迎来到:{{name}}</h2>
<h2 v-if="1===1">欢迎来到:{{name}}</h2>

生成的页面的DOM结构如下所示,可以看到表达式的值为false的时候,元素不会渲染在页面中。
在这里插入图片描述

2.2 条件渲染分组

用法:在 <template> 元素上使用 v-if 条件渲染分组。

注意template只能和v-if配合使用 ,不能和v-show配合

由于 v-if是一个指令,所以必须将它添加到一个元素上。但是如果想切换多个元素呢?此时可以把一个 <template> 元素当做不可见的包裹元素,并在上面使用 v-if。最终的渲染结果将不包含 <template> 元素。如下代码所示:

<template v-if="n===1"><h3>V</h3><h3>U</h3><h3>E</h3>
</template>

2.3 与 v-else-if、v-else 结合使用

v-if可以和v-else-ifv-else 一起使用, 但要求结构不能被打断,即用该指令的结构要挨在一起。

<div v-if="n===1">Angular</div>
<div v-else-if="n===2">React</div>
<div v-else-if="n===3">Vue</div>
<div v-else>好好学习,天天向上!</div>

三、v-if vs v-show

一般来说,v-if 有更高的切换开销,而 v-show 有更高的初始渲染开销。

因此,如果需要非常频繁地切换,则使用 v-show 较好;如果在运行时条件很少改变,则使用 v-if 较好。

四、测试案例

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script src="../lib/vue.min.js"></script>
</head>
<body><div id="root"><h2>当前的n值是:{{n}}</h2><button @click="n++">点击n++</button><!-- 使用v-show做条件渲染 --><h2 v-show="false">欢迎来到:{{name}}</h2><h2 v-show="1===1">欢迎来到:{{name}}</h2><!-- 使用v-if做条件渲染 --><h2 v-if="false">欢迎来到:{{name}}</h2><h2 v-if="1===1">欢迎来到:{{name}}</h2><div v-show="n===1">Angular</div><div v-show="n===2">React</div><div v-show="n===3">Vue</div><div v-if="n===1">Angular(v-if)</div><div v-else-if="n===2">React</div><div v-else-if="n===3">Vue</div><div v-else>好好学习,天天向上!</div><!-- v-if和template配合使用 --><template v-if="n===1"><h3>V</h3><h3>U</h3><h3>E</h3></template></div><script>new Vue({el:'#root',data:{name:'Vue',n:0},methods: {},})</script>
</body>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/26955.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FFmpeg 使用总结

FFmpeg 简介 FFmpeg的名称来自MPEG视频编码标准&#xff0c;前面的“FF”代表“Fast Forward”&#xff0c;FFmpeg是一套可以用来记录、转换数字音频、视频&#xff0c;并能将其转化为流的开源计算机程序。可以轻易地实现多种视频格式之间的相互转换。包括如下几个部分&#xf…

QT学习之旅 - Winsock入门

文章目录 服务端初始化为服务器创建套接字sockaddr和sockaddr_ininet_addrhtonl()、htons()、ntohl()、ntohs()四个函数htonl()函数htons()函数ntohs()函数ntohl()函数这些函数存在的意义(就是为了字节存放) 绑定getsockoptudp主函数处理 客户端 客户端和服务器应用程序的前几个…

webpack基础知识九:如何提高webpack的构建速度?

一、背景 随着我们的项目涉及到页面越来越多&#xff0c;功能和业务代码也会随着越多&#xff0c;相应的 webpack 的构建时间也会越来越久 构建时间与我们日常开发效率密切相关&#xff0c;当我们本地开发启动 devServer 或者 build 的时候&#xff0c;如果时间过长&#xff…

那些 MySQL 8.0 中的隐藏特性

在本文中&#xff0c;我想讨论 MySQL 8.0 中的几个相当新的特性&#xff0c;以及一个较老的特性。这些可能是您不知道的次要功能&#xff0c;但值得快速了解一下它们的工作方式以及在某些情况下可能的用途。 作者&#xff1a;Corrado Pandiani 本文来源&#xff1a;Percona 官网…

电源控制--品质因素Q值全解

什么是品质因素Q值&#xff1f; 在电源控制中&#xff0c;品质因素 Q 值通常用于描述电源滤波器的性能。电源滤波器用于减小电源中的噪声和干扰&#xff0c;以提供干净稳定的电源供应给电子设备。 品质因素 Q 值在电源滤波器中表示滤波器的带宽和中心频率之比&#xff0c;用于…

IP提取器对比器

需求&#xff1a; 一个html 页面 &#xff0c;有两个输入框 第一个输入框输入文本中包含多个ip&#xff0c;输入的ip是不规则的&#xff0c;需要使用正则表达式提取出 输入文本的ip地址 &#xff0c; 然后在第二个输入框中输入内容&#xff0c;并提取出内容的ip &#xff0c;如…

Spark 内存管理之 MemoryConsumer

MemoryConsumer 是内存的使用者&#xff0c;如 sort, shuffle。MemoryConsumer 的 spill 方法是抽象方法&#xff0c;由子类提供。 MemoryConsumer 的字段和构造方法如下&#xff1a; public abstract class MemoryConsumer {protected final TaskMemoryManager taskMemoryMan…

Linux进程间通信--msgsnd函数的作用

msgsnd函数用于将消息发送到消息队列中。它的原型如下&#xff1a; int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); 参数解释&#xff1a; msqid&#xff1a;消息队列标识符&#xff0c;由msgget函数返回。msgp&#xff1a;指向要发送的消息的指针&…

改变vue循环生成的盒子样式,给点击的某一个盒子添加不同的样式

1.给盒子添加动态属性:class"[index isActive?active-box:choose-box]" <div v-for"(item,index) in zyList" :key"item.sid" :class"[index isActive?active-box:choose-box]" click"getKmList(item,index)"…

大数据开发的学习路线是什么样的

大数据技术的体系庞大且复杂&#xff0c;每年都会涌现出大量新的技术&#xff0c;目前大数据行业所涉及到的核心技术主要就是&#xff1a;数据采集、数据存储、数据清洗、数据查询分析和数据可视化。 学习大数据需要掌握什么语言基础&#xff1f; 1、Java基础 大数据框架90%以…

什么是OCR?OCR技术详解

光学字符识别(Optical Character Recognition)简称为“OCR”。ORC是指对包含文本资料的图像文件进行分析识别处理&#xff0c;获取文字及版面信息的技术。 一般包括以下几个过程&#xff1a; 1.图像输入 针对不同格式的图像&#xff0c;有着不同的存储格式和压缩方式。目前&…

Elastic:linux设置elasticsearch、kibana开机自启

0. 引言 每次启动服务器都要手动启动es服务&#xff0c;相当之不方便&#xff0c;为此&#xff0c;书写一个脚本&#xff0c;实现es、kibana的开机自启 1. 原理 首先任何服务要实现开机自启&#xff0c;都可分为如下三步&#xff1a; 1、在/etc/init.d目录下创建启动、关闭服…

C#设计模式(15)命令模式(Command Pattern)

命令模式&#xff08;Command Pattern&#xff09; 命令模式是一种数据驱动的设计模式&#xff0c;属于行为型模式类别。请求被包装在一个对象中作为命令&#xff0c;并传递给调用对象。调用对象寻找可以处理该命令的合适对象&#xff0c;并将命令传递给相应的对象&#xff0c…

海康威视摄像头配置RTSP协议访问、onvif协议接入、二次开发SDK接入

一、准备工作 (1)拿到摄像头之后,将摄像头电源线插好,再将网线插入到路由器上。 (2)将自己的笔记本电脑也连接到路由器网络,与摄像头出在同一个局域网。 二、配置摄像头 2.1 激活方式选择 第一次使用设备需要激活,在进行配置。 最简单,最方便的方式是选择浏览器激…

uniapp创建项目入门【详细】

大家在学习vue和微信小程序之后&#xff0c;就可以开始来学习uniapp了&#xff0c;在uniapp中&#xff0c;一套代码可以跨越所有的平台&#xff0c;可以很方便的维护。接下来我们先来学习如何创建uinapp的项目 一、uniapp的创建需求 大家只要会vue和微信小程序的基础来学习unia…

在CentOS7安装部署GitLab服务

CentOS 7 安装 Gitlab 官方安装教程&#xff1a;https://about.gitlab.com/install/ 参考安装教程&#xff1a;https://developer.aliyun.com/article/74395 安装配置 Step1&#xff1a;配置yum源 vim /etc/yum.repos.d/gitlab-ce.repo存入以下内容&#xff1a; [gitlab-c…

目标分割后 opencv 轮廓骨架计算

opencv获取轮廓 contours, hierarchy = cv2.findContours(mask_i, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)获取分割图像的骨架 # 中轴变换 得到裂缝的骨架使用 skimage.morphology.skeletonize 函数对二值化图像进行骨架提取。skeleton = skeletonize(mask_i, method

浅析 String

浅析String 一、创建字符串二、字符串与常量池三、字符串的不可变性四、字符串的拼接五、StringBuilder和StringBuffer 一、创建字符串 //三种常用的构造字符串的方式public static void main(String[] args) {String str1 "hello";String str2 new String("w…

恢复swp文件

swp文件_.swp文件_luminous_you的博客-CSDN博客 三、恢复源文件 正常URL:xxx/m.php 则尝试URL:xxx/.m.php.swp下载.swp文件代码 假设你的swp文件叫’.m.php.swp’ 可用带-r参数编辑#vi -r m.php 然后wq保存即可

图论 <最短路问题>模板

图论 <最短路问题> 有向图 1.邻接矩阵&#xff0c;稠密图 2.邻接表 &#xff08;常用&#xff09;单链表&#xff0c;每一个点都有一个单链表 &#xff0c;插入一般在头的地方插&#xff0c; 图的邻接表的存储方式 树的深度优先遍历 特殊的深度优先搜索&#xff0c…