学习Vue 02-20 使用v-if实现条件渲染

20 使用v-if实现条件渲染

We also can generate or remove an element from the DOM, a scenario called conditional rendering.

我们还可以从 DOM 中生成或移除元素,这种情况称为条件呈现。

Assume we have a Boolean data property isVisible, which decides if Vue should render a text element into the DOM and make it visible to the user.

假设我们有一个布尔数据属性 isVisible,它决定 Vue 是否应将文本元素呈现到 DOM 中,并使其对用户可见。

Binding directive v-if to isVisible by placing v-if=“isVisible” on the text element enables reactively rendering the element only when isVisible is true (Example 2-12).

通过在文本元素上放置 v-if=“isVisible”,将指令 v-if 与 isVisible 绑定,就能仅在 isVisible 为 true 时才反应式地呈现该元素(例 2-12)。

<script>
export default {data() {return {isVisible: false}},methods: {}
}
</script>
<template><div><div v-if="isVisible">I'm the text in toggle</div><div>Visibility: {{ isVisible }}</div></div>
</template>

When setting isVisible to false, the generated DOM elements will look like this:

当设置 isVisible 为 false 时,生成的 DOM 元素将如下所示:

<div><!--v-if--><div>Visibility: false</div>
</div>

Otherwise, the text element will be visible in the DOM:

否则,文本元素将在 DOM 中可见:

<div><div>I'm the text in toggle</div><div>Visibility: true</div>
</div>

If we want to render a different component for the opposite condition (isVisible is false), v-else is the right choice. Unlike v-if, you use velse without binding to any data property. It takes the correct condition value based on the immediate preceding v-if usage in the same context level.

如果我们想在相反的条件下(isVisible 为 false)呈现不同的组件,v-else 就是正确的选择。与 v-if 不同,使用 velse 时无需绑定任何数据属性。它根据同一上下文层中紧接着的 v-if 使用情况来获取正确的条件值。

For example, as Example 2-13 shows, we can create a component with the following code block with both v-if and v-else.

例如,如例 2-13 所示,我们可以用以下代码块创建一个同时包含 v-if 和 v-else 的组件。

<script>
export default {data() {return {isVisible: false}},methods: {}
}
</script>
<template><div><div v-if="isVisible">I'm the visible text</div><div v-else>I'm the replacement text</div></div>
</template>

In short, you can translate the previous conditions into similar logical expressions as:

简而言之,您可以将前面的条件转化为类似的逻辑表达式:

<!--if isVisible is true, then render -->
<div>I'm the visible text</div>
<!-- else render -->
<div>I'm the replacement text</div>

As in any if…else logic expression, we can always extend the condition check with an else if condition block. This condition block equals a velse-if directive and also requires a JavaScript condition statement.

在任何 if…else 逻辑表达式中,我们都可以使用 else if 条件块来扩展条件检查。该条件块等同于 velse-if 指令,也需要 JavaScript 条件语句。

Example 2-14 shows how to display a text, I’m the subtitle text, when isVisible is false and showSubtitle is true.

例 2-14 展示了当 isVisible 为 false 且 showSubtitle 为 true 时,如何显示文本(我是字幕文本)。

<script>
export default {data() {return {isVisible: false,showSubtitle: false,}},methods: {}
}
</script>
<template><div><div v-if="isVisible">I'm the visible text</div><div v-else-if="showSubtitle">I'm the subtitle text</div><div v-else>I'm the replacement text</div></div>
</template>

While using v-if means to render an element conditionally, there are situations where it won’t be efficient to mount/unmount an element from the DOM so frequently.

虽然使用 v-if 可以有条件地渲染元素,但在某些情况下,频繁地从 DOM 挂载/卸载元素并不高效。

In such cases, it’s better to use v-show.

在这种情况下,最好使用 v-show。

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

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

相关文章

清风数学建模排版

Overview 链接&#xff1a;https://pan.baidu.com/s/11QBw3zBFNicwQWvWCfW1Gg?pwdepnz 提取码&#xff1a;epnz Latex 范文排版练习 b站刘海洋latex工作室&#xff0c;待还愿 Word基础 Word VBA&#xff0c;待还愿 fnF4&#xff1a;重复上一步操作 ctrlY&#xff1a;恢…

DispatcherServlet请求处理流程

前言 DispatcherServlet 是 Spring MVC 的核心类&#xff0c;它本质是一个 Servlet&#xff0c;负责接管 HTTP 请求并把它分发给对应的处理器处理&#xff0c;最后处理响应结果渲染页面。 DispatcherServlet 本身并不复杂&#xff0c;它提供了一个模板方法doDispatch()来处理请…

进阶学习——Linux系统中重点‘进程’

目录 一、程序和进程的关系 1.程序 2.进程 2.1线程 2.2协程 3.进程与线程的区别 4.总结 4.1延伸 5.进程使用内存的问题 5.1内存泄漏——Memory Leak 5.2内存溢出——Memory Overflow 5.3内存不足——OOM&#xff08;out of memory&#xff09; 5.4进程使用内存出现…

leecode | 每日温度

leecode 739 给定一个整数数组 temperatures &#xff0c;表示每天的温度&#xff0c;返回一个数组 answer &#xff0c;其中 answer[i] 是指对于第 i 天&#xff0c;下一个更高温度出现在几天后。如果气温在这之后都不会升高&#xff0c;请在该位置用 0 来代替。 这种在同一个…

如何正确使用docker搭建靶场--pikachu

在Linux中搭建靶场——pikachu 1.开启docker systemctl start docker 2.查看docker状态 systemctl status docker 3.查看docker存在那些镜像 docker images 4.拉取镜像&#xff0c;这里是以pikachu为例因此需要一个php5的版本 &#xff08;1&#xff09;打开代理&#xff…

【Nodejs】基于Promise异步处理的博客demo代码实现

目录 package.json www.js db.js app.js routes/blog.js controllers/blog.js mysql.js responseModel.js 无开发&#xff0c;不安全。 这个demo项目实现了用Promise异步处理http的GET和POST请求&#xff0c;通过mysql的api实现了博客增删改查功能&#xff0c;但因没有…

为什么亚马逊卖家一定要有独立站?新手低成本快速搭建跨境电商独立站完整图文教程

目录 前言&#xff1a;为什么亚马逊卖家一定要有独立站&#xff1f; 为什么不选Shopify建站&#xff1f; 效果展示 一、购买域名 二、购买主机托管 三、搭建网站 前言&#xff1a;为什么亚马逊卖家一定要有独立站&#xff1f; 最近不少卖家朋友来问独立站建站方面的问题…

桥接模式和NAT模式的区别

一、桥接模式(bridged networking) 在桥接模式下,VMWare虚拟出来的操作系统就像是局域网中一台独立的主机,它能够访问网内任何一台机器。 在桥接模式下,你必须手工为虚拟系统配置IP地址、子网掩码,并且还要和宿主机器处于同一网段,这样虚拟系统才能和宿主机器进行通信。 配置…

安全防御之授权和访问控制技术

授权和访问控制技术是安全防御中的重要组成部分&#xff0c;主要用于管理和限制对系统资源&#xff08;如数据、应用程序等&#xff09;的访问。授权控制用户可访问和操作的系统资源&#xff0c;而访问控制技术则负责在授权的基础上&#xff0c;确保只有经过授权的用户才能访问…

前端插件库-VUE3 使用 vue-codemirror 插件

VUE3 插件 vue-codemirror 使用步骤和实例、基于 CodeMirror &#xff0c;适用于 Vue 的 Web 代码编辑器。 第一步&#xff1a;安装 vue-codemirror & codemirror 包 &#xff0c; 以及语言包 npm install codemirror --save npm install vue-codemirror --savenpm insta…

VS2022 创建windows服务-Windows Service

vs2022 2023等版本出现&#xff0c;似乎被忘记的早期的Windows Service服务是如何创建的呢&#xff1f;本文介绍了如何用新版本VS进行C#创建、安装、启动、监控、卸载简单的Windows Service 的内容步骤和注意事项。windows服务可以在windows中自动运行。 一、创建一个Windows …

Android 多线程简单使用

在Android中&#xff0c;可以使用Java的Thread类或者使用AsyncTask类来实现多线程功能。 使用Thread类实现多线程&#xff1a; public class MyThread extends Thread {Overridepublic void run() {// 在这里执行多线程任务// 可以通过调用Thread的静态方法sleep()模拟耗时操…

若依 参数验证、数据校验使用

参数验证 spring boot中可以用@Validated来校验数据,如果数据异常则会统一抛出异常,方便异常中心统一处理。 1、基础使用 因为spring boot已经引入了基础包,所以直接使用就可以了。首先在controller上声明@Validated需要对数据进行校验。 public AjaxResult add(@Validate…

基于价值认同的需求侧电能共享分布式交易策略(matlab完全复现)

目录 1 主要内容 2 部分程序 3 程序结果 4 下载链接 1 主要内容 该程序完全复现《基于价值认同的需求侧电能共享分布式交易策略》&#xff0c;针对电能共享市场的交易机制进行研究&#xff0c;提出了基于价值认同的需求侧电能共享分布式交易策略&#xff0c;旨在降低电力市…

基于SpringBoot的旅游网站281

文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 项目介绍 基于SpringBoot的旅游网站281,java项目。…

电锯切割狂

欢迎来到程序小院 电锯切割狂 玩法&#xff1a;把木块切成等分的碎片&#xff0c;每关都会有切割次数&#xff0c;木块数&#xff0c;切割越均匀分数越搞&#xff0c; 有简单、正常、困难、专家版&#xff0c;快去解锁不同版本进行切割吧^^。开始游戏https://www.ormcc.com/pl…

你vue有写过自定义指令吗?知道自定义指令的应用场景有哪些吗?

一、什么是指令 开始之前我们先学习一下指令系统这个词 指令系统是计算机硬件的语言系统&#xff0c;也叫机器语言&#xff0c;它是系统程序员看到的计算机的主要属性。因此指令系统表征了计算机的基本功能决定了机器所要求的能力 在vue中提供了一套为数据驱动视图更为方便的…

MySQL的基础架构之内部执行过程

MySQL的逻辑架构图 如上图所示&#xff0c;MySQL可以分为Server层和存储引擎层两部分&#xff1a; 1&#xff09;Server层涵盖了MySQL的大多数核心服务功能&#xff0c;以及所有的内置函数&#xff08;如日期、时间、数学和加密函数等&#xff09;&#xff0c;所有跨存储引擎…

linux新M2固态挂载

一、普通挂载 查看硬盘信息 sudo fdisk -l创建文件系统 sudo mkfs.ext4 /dev/nvme0n1创建挂载点 sudo mkdir /home/zain挂载 sudo mount /dev/nvme0n1 /home/zain二、永久挂载 vi /etc/fstabinsert&#xff1a; /dev/nvme0n1 /home/zain ext4 defaults 0 2 wqs…

知识笔记(六十九)———缓冲区溢出攻击

1. 什么是缓冲区溢出 &#xff08;1&#xff09;缓冲区 缓冲区是一块连续的计算机内存区域&#xff0c;用于在将数据从一个位置移到另一位置时临时存储数据。这些缓冲区通常位于 RAM 内存中&#xff0c;可保存相同数据类型的多个实例&#xff0c;如字符数组。 计算机经常使用…