Vue.js条件渲染指令v-if及v-show

news2024/11/20 11:23:36

目录

一、v-if

二、v-show

三、v-if与v-show的选择


一、v-if

        v-if是Vue.js的条件语句,v-if指令用于条件性地渲染一块内容,这块内容只会在指令的表达式返回true的时候被渲染。需要特别注意的是,v-if所关联的是Vue.js的动态变量

        v-if的使用一般有两个场景:

       (1)通过条件判断展示或者隐藏某个元素或者多个元素

       (2)进行视图之间的切换

v-if基本使用示例:

    <div id="root">
        <!-- 使用v-if进行条件判断,条件为true则显示此标签,false则不显示 -->
        <p v-if="seen">现在你看到我了</p>
    </div>
    <script>
        Vue.config.productionTip = false;
        const vm = new Vue({
            el: '#root',
            data: {
                seen:true,

            },
            methods: {

            }
        })
    </script>

 执行结果:

        在上面的示例中,seen是Vue.js定义的一个变量。v-if的变量值一般是true或者false,当变量值为true时则显示元素,当变量值为false隐藏元素

v-else基本使用示例:

    <div id="root">
        <p v-if="seen">现在你看到我了</p>
        <p v-else>你看不到我了</p>
    </div>
    <script>
        Vue.config.productionTip = false;
        const vm = new Vue({
            el: '#root',
            data: {
                seen:false,
            },
            methods: {

            }
        })
    </script>

执行结果:

        上面的示例中,当seen变量值为true时,网页上显示"现在你看不到我了",当seen变量值为false时则显示"你看不到我了"。

v-else-if基本使用示例:

    <div id="root">
        <!-- v-else-if -->
        <p v-if="type==1">1</p>
        <p v-else-if="type==2">2</p>
        <p v-else="type==3">3</p>
    </div>
    <script>
        Vue.config.productionTip = false;
        const vm = new Vue({
            el: '#root',
            data: {
                type:2,
            },
            methods: {

            }
        })
    </script>

执行结果:

         上面示例中,当type变量值为1时,网页上显示"1";当type变量值为2时,网页上显示"2",当type变量值为3时,网页上显示"3"。

注意:v-else、v-else-if必须跟在v-if或者v-else-if之后。

二、v-show

        v-show是另一个条件渲染语句,用于根据条件展示元素,用法与v-if大致一样。

v-show基本使用示例:

    <div id="root">
        <p v-show="ok">Hello!</p>
    </div>
    <script>
        Vue.config.productionTip = false;
        const vm = new Vue({
            el: '#root',
            data: {
                ok:true,
            },
            methods: {

            }
        })
    </script>

执行结果:

        带有v-show的元素始终会被渲染并保留在DOM中,v-show指令使用css样式来控制元素的显示和隐藏。值得注意的是,v-show不支持<template>元素,也不支持v-else

三、v-if与v-show的选择

        v-if和v-show都可以用来动态的控制DOM元素的显示和隐藏。

        v-if是真正的条件渲染,因为它会确保在切换过程中条件块内的事件监听器和子组件适当的销毁和重建,v-if也是惰性的,如果在初始渲染时条件为假,则什么都不做,直到第一次变为真时,才会开始渲染条件块。

        v-show就简单的多,不管初始条件是什么,元素总是会被渲染,并且只是简单的基于css进行切换

v-if和v-show的比较示例:

    <div id="root">
        <h1 v-show="seenShow">v-show:true</h1>
        <h1 v-show="notSeenShow">v-show:false</h1>
        <h1 v-if="seenIf">v-if:true</h1>
        <h1 v-if="notSeenIf">v-if:false</h1>
    </div>
    <script>
        Vue.config.productionTip = false;
        const vm = new Vue({
            el: '#root',
            data: {
                seenShow:true,
                notSeenShow:false,
                seenIf:true,
                notSeenIf:false,
            },
            methods: {

            }
        })
    </script>

浏览器Elements:

        可以看出v-if隐藏的内部元素不会被显示,Vue.js不会尝试生成对应的html代码,而v-show是通过css的display:none来控制的。 

        一般来说,v-if每次插入或者移除元素时都必须生成元素内部的DOM树,因此具有更高的切换开销,而v-show有更高的初始渲染开销。因此,如果需要非常频繁地切换,则使用v-show较好;如果在运行时条件很少改变,则使用v-if较好

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

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

相关文章

如何计算连续变量的熵

背景 做特征选择时&#xff0c;有时候会用到计算特征的信息熵&#xff0c;可是离散的好计算&#xff0c;但连续的呢&#xff1f;按照把连续变量离散的方法设置阈值点吗&#xff1f;好像比较麻烦&#xff0c;需要排序&#xff0c; 计算阈值。没有能自动的方法吗&#xff1f; 找…

动物养殖虚拟仿真之生猪屠宰VR教学系统

生猪屠宰是一个复杂而危险的工作&#xff0c;需要有严格的操作规程和丰富的经验。但是传统的生猪屠宰培训存在一些问题&#xff0c;例如成本高、难以模拟真实场景等。 为了解决这些问题&#xff0c;VR技术被应用到生猪屠宰培训中&#xff0c;广州华锐互动由此开发了生猪屠宰VR…

BOM(1)

BOM&#xff1a;浏览器对象模型&#xff0c;它提供了独立于内容而与浏览器窗口进行交换的对象&#xff0c;其核心对象是window&#xff0c;由一系列相关对象构成&#xff0c;并且每个对象都提供了很多方法和属性BOM的构成&#xff1a;BOM比DOM更大&#xff0c;它包含DOM。 …

Docker中安装redmine(亲自安装有效)

第一步&#xff1a; 官方的一键安装方式&#xff1a; curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun (我用的它) 国内 daocloud一键安装命令&#xff1a; curl -sSL https://get.daocloud.io/docker | sh ############################可能遇见问题##…

机器学习 day07(特征缩放)

特征缩放的作用 特征缩放可以让梯度下降算法运行的更快特征&#xff1a;X    对应的参数&#xff1a;W当一个特征的可能值范围很大时&#xff0c;一个好的模型会选择一个相对较小的对应参数值&#xff0c;因为W₁的一个非常小的变化会给估计价格产生非常大的影响&#xff0…

View系列

掌握View核心知识体系&#xff0c;两大方向&#xff1a;View事件分发&#xff0c;自定义View。 文章目录 一&#xff0c;基础知识1.1 页面创建1.2 页面管理 二&#xff0c;View事件分发2.1 基本概念2.2 分发流程2.3 面试题 三&#xff0c;View绘制3.1 measure&#xff08;测量&…

C#+asp.net基于web的大学社团管理信息系统

本系统的模块是分为用户模块和管理员模块&#xff0c;管理员负责学生管理模块、社团管理模块、公告管理模块、留言管理模块、加入社团管理模块、活动管理模块、管理员管理模块。社团管理员则负责预约管理模块、活动报名的审核等。。 系统具有三类系统用户分别是&#xff1a;系统…

linux网络

查看网络接口信息 ifconfig mtu 最大传输单元 mtu和mss区别 hostname命令 永久修改 hostnamectl set-hostname 切换shell环境生效 或者vi hostname 编辑完重启生效 查看路由表条目route route查看或设置主机中路由表信息 route -n将路由记录中的地址信息显示为数字形式 …

MTU 网卡bond 简介

MTU 最大传输单元MTU&#xff08;Maximum Transmission Unit&#xff0c;MTU&#xff09;&#xff0c;是指网络能够传输的最大数据包大小&#xff0c;以字节为单位。MTU的大小决定了发送端一次能够发送报文的最大字节数。如果MTU超过了接收端所能够承受的最大值&#xff0c;或者…

App Inventor 2 开发问答App

应用介绍 一个最基本的问答App开发&#xff0c;问答数据源来自csv文件格式&#xff0c;方便后续拓展成网络版的问答App。 事先出好题目、ABCD选择项及正确答案&#xff0c;先存在列表中&#xff0c;然后按顺序出题&#xff0c;答对则继续下一题&#xff0c;答错则Game over。 …

人工智能的前沿信息获取之使用谷歌学术搜索

谷歌学术是谷歌公司开发的一款专门针对学术搜索的在线搜索引擎[4]&#xff0c;谷歌学术的网址为https://scholar.google.com&#xff0c;界面如图 6‑1所示。使用谷歌学术搜索可以检索会议或者期刊论文。只需要在检索框中输入关键字&#xff0c;然后点搜索按钮即可&#xff0c;…

了解Transformer架构的前奏_什么是预训练_理解预训练---人工智能工作笔记0034

我们会先来说预训练有什么用,其实 之前说的机器学习,其实都是跟数学相关性很大的,比如,支持向量机,回归算法, 1.最早的时候,做机器学习,就是偏数学的,比如用的决策树,支持向量机,线性回归,逻辑回归等算法. 这种是偏向数学的,偏向统计的. 然后这个深度学习,其实就是偏大数据的…

奥艺大会 | “OLYMP‘ARTS中国设计奖”在2023米兰设计周发布

由国际奥艺委员会、北京国际设计周和中国科学院大学魏桥国科联合实验室共同发起的“OLYMPARTS中国设计奖”&#xff08;OlympArts China Design Awards&#xff09;于当地时间2023年4月19日&#xff0c;在2023米兰设计周“中国日”活动中举行宣传推介活动。 &#xff08;由左至…

缺失msvcp140.dll怎么办?msvcp140.dll下载

缺失msvcp140.dll怎么办&#xff1f;msvcp140.dll下载&#xff0c;作为Windows操作系统中必备的组件之一&#xff0c;msvcp140.dll是一款Microsoft Visual C Runtime的动态链接库文件&#xff0c;旨在提供必要的C运行环境支持&#xff0c;以让软件应用程序得以在Windows平台上可…

道可维斯|益企行动,点亮星空数字化转型峰会

2023年&#xff0c;“烟火气”回归&#xff0c;但企业挑战仍在继续。找寻企业增长转型的内生动力&#xff0c;仍是中小企业不变的探索话题。如何寻找穿越周期的高成长机会&#xff1f;4月21日&#xff0c;佛山金蝶软件科技有限公司主办的主题为“益企行动&#xff0c;点亮星空”…

MFC转QT踩坑记录

1、中文乱码 QT msvc编译器版本默认编译的是字符串编码是ANSI&#xff0c; 而QTCreator默认创建的cpp字符串编码是UTF-8&#xff0c;然后msvc还是按ANSI去解析字符串常量&#xff0c;所以导致了中文乱码 解决方案&#xff1a; 使用notepad把cpp编码从UTF-8转成 UTF-8带BOM…

ChatGPT 之父承认 GPT-5 并不存在,为什么 OpenAI 总是这么实诚?|万字详述

ChatGPT 诞生前传 来源: 爱范儿 微信号&#xff1a;ifanr 最近&#xff0c;OpenAI 的 CEO Sam Altman 在一场公开会议上为 GPT-5 辟谣。 他声称 OpenAI 并没有在训练 GPT-5&#xff0c;而是一直基于 GPT-4 做别的工作。 OpenAI 是一家非常有趣的机构&#xff0c;和微软、Go…

用SQL语句操作Oracle数据库——数据更新

数据更新 数据库中的数据更新操作有3种&#xff1a;1)向表中添加若干行数据&#xff08;增&#xff09;&#xff1b;2&#xff09;删除表中的若干行数据&#xff08;删&#xff09;&#xff1b;3&#xff09;修改表中的数据&#xff08;改&#xff09;。对于这3种操作&#xf…

提升项目沟通效果的核心方法

项目沟通是项目管理中的核心之一&#xff0c;项目成败的关键因素之一就是项目团队之间的沟通效果。良好的项目沟通可以增强团队的合作力和凝聚力&#xff0c;确保项目按时完成&#xff0c;达成项目目标。那么提升项目沟通效果的方法有哪些呢&#xff1f;。1、制定沟通计划 在项…

JAVAWeb06-动态WEB开发核心Servlet-01

1. 概述 1.1 官方文档 地址: https://tomcat.apache.org/tomcat-8.0-doc/servletapi/index.html 1.2 Servlet 和 Tomcat 的关系 一句话, Tomcat 支持 Servlet&#xff08;谁也不能离开谁&#xff09; 1.3 为什么会出现 Servlet 提出需求: 请用你现有的html css javascrip…