当前位置: 首页 > news >正文

【Vue】Vue的v-if、v-if-else、v-else-if、v-show的使用

CSDN话题挑战赛第2期
参赛话题:面试宝典

💭💭

✨: Vue的v-if、v-if-else、v-else-if、v-show的使用

💟:东非不开森的主页

💜:如果有幸和你一起学习一起进步,那就太棒啦💜💜

Vue的条件渲染

    • 一、Vue的条件渲染
      • 1.1.v-if
      • 1.2.v-if-else
      • 1.3.v-else-if
      • 1.4.template元素
      • 1.5.v-show
      • 1.6.v-show和v-if的区别

一、Vue的条件渲染

1.1.v-if

⭐⭐
if 顾名思义,就是如果满足一个条件后,执行下面的步骤,和我们学的基础语法是一样的,只是这里在Vue中稍微换了一下而已

v-if=“条件” if后面的内容只有在条件为true时,才会被渲染出来

<div class="info" v-if="Object.keys(info).length">
        <h2>个人信息</h2>
        <ul>
          <li>姓名:{{info.name}}</li>
          <li>年龄:{{info.age}}</li>
        </ul>
 </div>


v-if的渲染原理:

  • v-if是惰性的;
  • 当条件为false时,其判断的内容完全不会被渲染或者会被销毁掉;
  • 当条件为true时,才会真正渲染条件块中的内容;

1.2.v-if-else

⭐⭐
v-if-else
我们可以想到 基础语法的 if else
没错也是一样的道理

v-if=“条件” 如果条件不满足,执行else

<div class="info" v-if="Object.keys(info).length">
   <h2>个人信息</h2>
</div>

 <div v-else>
  	<h2>没有输入个人信息</h2>
 </div>

1.3.v-else-if

⭐⭐
v-else-if 和if搭配使用
且v-else-if可以使用多次(一般用于多种情况下)
v-else-if 只能和if在一起使用

<h1 v-if="score > 90">优秀</h1>
<h2 v-else-if="score > 80">良好</h2>
<h2 v-else-if="score >= 60">及格</h2>
<h2 v-else>不及格啦</h2>

1.4.template元素

⭐⭐
template:模板的意思
当我们不想让div这种元素被渲染的时候,可以使用template

因为template是作为占位符,用于包裹元素,自身并没有被渲染出来

注意点:每个组件根template (最外层的template)只能有一个子元素,非根template没有限制。


template元素可以当做不可见的包裹元素,并且在v-if上使用,但是最终template不会被渲染出来:

<template v-if="Object.keys(info).length">
        <h2>个人信息</h2>
        <ul>
          <li>姓名:{{info.name}}</li>
          <li>年龄:{{info.age}}</li>
        </ul>
      </template>

<template v-else>
        <h2>没有输入个人信息</h2>
</template>

1.5.v-show

⭐⭐
v-show的用法和v-if一样

<div v-show="isShowCode">
        <img
          src="https://lf3-cdn-tos.bytescm.com/obj/static/xitu_juejin_web/img/app_download_QR.cbe9f32.png"
          alt=""
        />
</div>

1.6.v-show和v-if的区别

⭐⭐
v-if和v-show区别
用法上:

  • v-show是不支持template;
  • v-show不可以和v-else一起使用

本质的区别

  • v-show元素无论是否需要显示到浏览器上,它的DOM实际都是有存在的,只是通过CSS的display属性来进行切换;
  • v-if当条件为false时,其对应的原生压根不会被渲染到DOM中;

如何选择

  • 如果我们的原生需要在显示和隐藏之间频繁的切换,那么使用v-show;
  • 如果不会频繁的发生切换,那么使用v-if;

相关文章:

  • 【设计模式】创建型模式:单例模式
  • Sentry、Loki 轻量级日志系统部署及应用
  • Spring Boot 统一功能处理
  • qsort:我很强,了解一下(详解过程)
  • 因为一道题,我把 try-catch-finally 的细节都整理了一遍(1500字)
  • 32、学习 Java 中的注解(参照官方教程)
  • 【第一部分 | HTML】1:揭露HTML的神秘面纱
  • 安装finalshell
  • 怎么找到贵人?
  • pix2pix-论文阅读笔记
  • Idea中重构从精通到陌生
  • springcloud
  • 【机器学习】树模型决策的可解释性与微调(Python)
  • SHRM在中国的认可度如何?这里说了实话
  • 单片机控制发光二极管的显示(1)
  • IE9 : DOM Exception: INVALID_CHARACTER_ERR (5)
  • Apache的80端口被占用以及访问时报错403
  • Debian下无root权限使用Python访问Oracle
  • flask接收请求并推入栈
  • input实现文字超出省略号功能
  • Intervention/image 图片处理扩展包的安装和使用
  • JavaScript的使用你知道几种?(上)
  • Java编程基础24——递归练习
  • npx命令介绍
  • seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
  • Vue 重置组件到初始状态
  • vue数据传递--我有特殊的实现技巧
  • 初识MongoDB分片
  • 服务器之间,相同帐号,实现免密钥登录
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 关于for循环的简单归纳
  • 跳前端坑前,先看看这个!!
  • 译米田引理
  • ​直流电和交流电有什么区别为什么这个时候又要变成直流电呢?交流转换到直流(整流器)直流变交流(逆变器)​
  • # 学号 2017-2018-20172309 《程序设计与数据结构》实验三报告
  • (13)[Xamarin.Android] 不同分辨率下的图片使用概论
  • (3)nginx 配置(nginx.conf)
  • (强烈推荐)移动端音视频从零到上手(上)
  • (亲测成功)在centos7.5上安装kvm,通过VNC远程连接并创建多台ubuntu虚拟机(ubuntu server版本)...
  • (一)基于IDEA的JAVA基础12
  • (转)Linux整合apache和tomcat构建Web服务器
  • (转)Oracle存储过程编写经验和优化措施
  • (转载)PyTorch代码规范最佳实践和样式指南
  • .bat批处理(四):路径相关%cd%和%~dp0的区别
  • .bat批处理(五):遍历指定目录下资源文件并更新
  • .NET CLR Hosting 简介
  • .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter
  • .NET:自动将请求参数绑定到ASPX、ASHX和MVC(菜鸟必看)
  • .ui文件相关
  • @Valid和@NotNull字段校验使用
  • [ HTML + CSS + Javascript ] 复盘尝试制作 2048 小游戏时遇到的问题
  • []C/C++读取串口接收到的数据程序
  • [Android 13]Input系列--获取触摸窗口
  • [Android开源]EasySharedPreferences:优雅的进行SharedPreferences数据存储操作
  • [bbk5179]第66集 第7章 - 数据库的维护 03