Vue框架学习笔记——条件渲染:v-show和v-if

news2024/11/24 20:39:23

文章目录

  • 前文提要
  • 条件渲染
  • v-show
  • v-if
    • v-else-if和v-else
      • 特殊写法,很多个一致的v-if如何消除
  • 总结


前文提要

本人仅做个人学习记录,如有错误,请多包涵

主要学习链接:尚硅谷Vue2.0+Vue3.0全套教程丨vuejs从入门到精通


条件渲染

条件渲染顾名思义是符合条件了才给你渲染出来,才显示出来。
可以使用两种指令完成这个操作:v-show和v-if指令。

其中v-show指令隐藏不显示的元素,结构仍然在,也就是你浏览器页面中虽然看不见,但是你打开控制台查看源代码的时候,仍然能够看见它,这是通过修改底层的display属性实现的。

但是v-if则不一样,它是直接删除整个结构的,你网页中看不见,源代码中同样不出现,所以比较耗费资源,如果变化比较频繁的时候,也不建议使用v-if。

只要保证v-show和v-if后面的表达式布尔值为真,就会显示,假就不显示。

v-show

如果将代码写成这样:

<body>
  <div id="box">
    <h1 v-show="a===false">显示a</h1>
    <button @click="a=!a">改变a的数值,a现在={{a}}</button>
  </div>
  <script type="text/javascript">
    Vue.config.productionTip = false
    const vm = new Vue({
      el: '#box',
      data: {
        a:false
      },
    })
  </script>
</body>

那么你就已经可以通过v-show掌握元素的显示和隐藏了,通过将元素隐藏或是显示的控制权移交给Vue框架。

当然,你也可以通过写一些函数,来返回布尔值,v-show后面的只要是布尔值就行,true显示,false隐藏。

呈现效果:
显示:

在这里插入图片描述
隐藏:

在这里插入图片描述
v-show实现的时候,元素隐藏,该元素的结构仍然存在

v-if

如果将上文代码中的这一部分修改(其余部分不变):

<h1 v-if="a===false">显示a</h1>

呈现效果就会大不相同:
显示:
在这里插入图片描述
隐藏:
在这里插入图片描述
当v-if后面的布尔值为假的时候,整个结构都会被删除,会用一个注释来代替。

v-else-if和v-else

将上文代码改为这样:

<body>
  <div id="box">
    <h1 v-if="a===1">显示1</h1>
    <h1 v-else-if="a===2">显示2</h1>
    <h1 v-else-if="a===3">显示3</h1>
    <h1 v-else>显示hh</h1>
    <button @click="a++">a+=1,a现在={{a}}</button>
  </div>
  <script type="text/javascript">
    Vue.config.productionTip = false
    const vm = new Vue({
      el: '#box',
      data: {
        a:1
      },
    })
  </script>
</body>

当v-if后面的条件为真的时候,就不会接着判断后续v-else-if和v-else的条件了。你如果都写成一堆的v-if,那么它会接着判断。
当a>=4的时候,永远都只会显示’显示hh’,这和其他编程语言中的逻辑是一样的。
需要注意的是,v-if和v-else-if只要,v-if和v-else-if,v-if和v-else-if还有v-else,这些组合如果出现了,那么标签的中间就不能出现其他不包含其他的标签,要始终保持他们是一个紧密的整体

错误示范,写成这样就不可以:

<h1 v-if="a===1">显示1</h1>
    <h1 v-else-if="a===2">显示2</h1>
    <h1 v-else-if="a===3">显示3</h1>
    <h1>333</h1>
    <h1 v-else>显示hh</h1>

在这里插入图片描述

特殊写法,很多个一致的v-if如何消除

    <h1 v-if="a===1">显示1</h1>
    <h1 v-if="a===1">显示2</h1>
    <h1 v-if="a===1">显示3</h1>

例如写成这样子,连续三行的判断条件都是同一个,可以使用div标签包裹,就像这样,但是很不推荐这种写法,因为会破坏DOM结构

  <div id="box">
    <div v-if="a===1">
      <h1>显示1</h1>
      <h1>显示2</h1>
      <h1>显示3</h1>
    </div>

但是有一种特殊的类似写法,不会破坏DOM结构,那就是使用template,就像这样:

    <template v-if="a===1">
      <h1>显示1</h1>
      <h1>显示2</h1>
      <h1>显示3</h1>
    </template>

template在解析完成后会自动消失,不像div标签一样会存在与html文件中破坏DOM结构,使得原先可以定位的代码失效。

总结

在这里插入图片描述


至此,结束。

如果你觉得这篇文章写的不错,多多点赞~收藏吧!

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

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

相关文章

QT QComBox实现模糊查询

一、概述 在Qt中&#xff0c;可以通过QComboBox和QLineEdit实现模糊查询的功能。模糊查询是指根据用户输入的文本&#xff0c;在下拉框的选项中进行模糊匹配&#xff0c;并动态地显示匹配的选项。 二、基础知识 1、QCompleter (1)QCompleter 是 Qt 框架中提供的一个用于自动…

12 网关实战:Spring Cloud Gateway基础理论

为什么需要网关? 传统的单体架构中只有一个服务开放给客户端调用,但是微服务架构中是将一个系统拆分成多个微服务,那么作为客户端如何去调用这些微服务呢?如果没有网关的存在,只能在本地记录每个微服务的调用地址。 无网关的微服务架构往往存在以下问题: 客户端多次请求…

ElasticSearch学习笔记(一)

计算机软件的学习&#xff0c;最重要的是举一反三&#xff0c;只要大胆尝试&#xff0c;认真验证自己的想法就能收到事办功倍的效果。在开始之前可以看看别人的教程做个快速的入门&#xff0c;然后去官方网站看看官方的教程&#xff0c;有中文教程固然是好&#xff0c;没有中文…

从容应对高并发:RabbitMQ与消息限流策略的完美结合

在当今互联网时代&#xff0c;高并发访问已成为许多应用系统面临的常见挑战之一。对于需要处理大量请求的系统来说&#xff0c;如何保证系统的稳定性和可靠性是一个关键问题。RabbitMQ作为一种可靠的消息队列中间件&#xff0c;可以帮助解决高并发环境下的消息处理问题。而结合…

“智”护城市生命线,宏电亮相第十届中国(上海)国际管网展

11月22-24日&#xff0c;第十届中国&#xff08;上海&#xff09;国际管网展览会在国家会展中心盛大举办&#xff0c;展会旨在配合推进国家基础建设工作&#xff0c;推动管网改造建设&#xff0c;汇聚了三百余家优秀企业参展&#xff0c;展示产品及技术覆盖管网建设、智慧水务、…

LeetCode-面试题08.01 三步问题 C/C++实现 超详细思路及过程[E]

&#x1f388;归属专栏&#xff1a;深夜咖啡配算法 &#x1f697;个人主页&#xff1a;Jammingpro &#x1f41f;记录一句&#xff1a;摆了一个周末了&#xff0c;不能摆了&#xff0c;努力起来&#xff01;&#xff01; 文章目录 LeetCode-面试题08.01 三步问题&#x1f697;题…

Hiera实战:使用Hiera实现图像分类任务(一)

文章目录 摘要安装包安装timm 数据增强Cutout和MixupEMA项目结构计算mean和std生成数据集_pickle.PicklingError: Cant pickle <function Head.<lambda> at 0x000001DE8DD7F240>: attribute lookup Head.<lambda> on hiera.hiera failed 摘要 现代层次视觉变…

基于DSP/SOC音乐灯效系统设计方法

音乐灯效系统设计方法 是否需要申请加入数字音频系统研究开发交流答疑群(课题组)?可加我微信hezkz17, 本群提供音频技术答疑服务,+群赠送语音信号处理降噪算法,蓝牙耳机音频,DSP音频项目核心开发资料, 三种方法: (1)MIC 采集音乐信号变化,(2)直接获取SPK 模拟音频…

OBS Studio 30.0 正式发布:支持 WebRTC

导读OBS Studio 30.0 已正式发布。此版本移除了对 Ubuntu 20.04、Qt 5 和 FFmpeg 4.4 之前版本的支持。 OBS Studio 30.0 已正式发布。此版本移除了对 Ubuntu 20.04、Qt 5 和 FFmpeg 4.4 之前版本的支持。 主要变化包括&#xff1a; 支持 WebRTC&#xff08;详情查看 OBS Stu…

s_v_web_id或fp协议过签名,dy滑块

某音s_web_id或fp协议过签名 ‘h5_sdk_version’, ‘2.36.0’ "search_impr":{"entity_id":"1135137973613200"},"link_item_list":null,"user_permissions":null,"offline_info_list":null,"is_cf":…

51单片机项目(15)——基于51单片机的万年历仿真

1.功能设计 本次设计的系统&#xff0c;可以显示年月日&#xff0c;时分秒。使用DS1302芯片。 还自带闹钟功能. &#xff08;要源工程的&#xff0c;移步至最后&#xff01; &#xff08;代码和仿真文件都有&#xff09;&#xff09; 2.仿真图 3.背景意义 51单片机&#x…

微信api开发接口文档

简要描述&#xff1a; 搜索联系人 请求URL&#xff1a; http://域名地址/searchUser 请求方式&#xff1a; POST 请求头Headers&#xff1a; Content-Type&#xff1a;application/jsonAuthorization&#xff1a;login接口返回 参数&#xff1a; 参数名必选类型说明wI…

人力资源管理后台 === 主页模块

目录 1.获取用户资料在Vuex中共享 2.显示用户头像和用户名 3.处理头像为空的场景 4.处理token失效的问题 5.调整下拉菜单&#xff0c;实现退出登录 6.修改密码功能实现 6.1-修改密码-弹出层 6.2-修改密码-表单结构 6.3-修改密码-表单校验 6.4-修改密码-确定和取消 7.…

学习知识回顾随笔

文章目录 如何远程连接MySQL数据库1.创建用户来运行&#xff0c;此用户从任何主机连接到mysql数据库2.使用IP地址来访问MySQL数据库 如何远程访问Django项目Web应用什么是Web应用应用程序的两种模式Web应用程序的优缺点 HTTP协议&#xff08;超文本传输协议&#xff09;简介HTT…

京东平台双11全品类完整销售数据回顾(京东大数据-京东数据采集-京东数据接口)

今年的双十一&#xff0c;大家依然没有等到各大平台的官方战报。 所以&#xff0c;对于绝大部分品牌、商家、咨询公司乃至有数据研究需求的小伙伴来说&#xff0c;很难了解到今年大促消费者的真实消费水平。 为此&#xff0c;鲸参谋简单整理出了10个京东大类目&#xff08;含5…

享受更健康的睡眠,dido P1S智能手环体验

如今很多人都有严重的失眠困扰&#xff0c;像是因为平时工作非常繁忙&#xff0c;每天回到家后已经很晚了&#xff0c;或者是睡前长时间刷手机&#xff0c;躺在床上辗转反侧&#xff0c;晚上就很难入睡&#xff0c;脑海中一片混乱&#xff0c;休息的质量就很差。我最近尝试了一…

功率信号源可输出波形有哪些

功率信号源是一种能够产生高功率输出信号的电子设备。它常用于实验室、工业生产以及各种应用领域中&#xff0c;如无线通信、音频放大和激光器驱动等。功率信号源可以输出多种不同的波形&#xff0c;下面将介绍一些常见的输出波形类型。 直流&#xff08;DC&#xff09;波形&am…

影响机器视觉测量精度的因素有哪些?

精度测量取决于分辨率 在机器视觉测量中提供高精度和低不确定度的决定性因素是获取的图像的分辨率。在这种情况下&#xff0c;术语分辨率 &#xff08;或图像分辨率&#xff09;意味着以实际单位的单个像素的大小。简而言之&#xff0c;如果一个摄像机传感器在水平方向上包含…

IP代理的潜力有多大?做跨境一定要会用!

IP说简单不简单&#xff0c;说复杂也不复杂&#xff0c;打个比方&#xff0c;IP就好比我们上网的一个门牌号&#xff0c;每家每户都会有一个门牌号&#xff0c;而且是唯一的地址。而代理IP&#xff08;代理服务器&#xff09;是一个位于中间的服务器&#xff0c;充当客户端和目…

iptables拒绝所有端口放开特定端口方法流程,iptables允许ping和拒绝ping、hosts阻止所有ip指定放开ip方法流程

文章目录 说明iptables拒绝所有端口放开特定端口方法流程拒绝所有端口允许特定端口临时规则写入配置文件永久生效 iptables允许ping和拒绝ping禁止允许ping说明内核参数设置禁止允许 防火墙设置禁止允许 禁止ping允许ping外部ping通虚拟机内部虚拟机内部使用ping规则详细 hosts…