v-if与v-show的区别

v-if指令可以控制一个元素的显示和隐藏,那么它是如何实现的?它和看起来很像的v-show指令有什么区别呢?
如果v-if指令的值为假,那么这个元素不会被插入DOM。

下面的代码

<div v-if="true">one</div><div v-if="false">Two</div>

会输出如下内容:

<div>one</div>

和v-show指令比较一下,该指令使用CSS样式控制元素的显示/隐藏。
下面的Vue模板

<div v-show="true">one</div><div v-show="false">Two</div>

会输出如下内容:

  <div>one</div>  <div style="display: none;">Two</div>

用户会看到同样的内容,但两者间确实存在其他的影响和差异。
首先,因为使用v-if隐藏的内部元素不会被显示,Vue不会尝试生成对应的HTML代码;而对于v-show指令,事实并非如此。这意味着隐藏尚未加载的内容时,v-if指令更好一些。
下面这个例子会抛出一个异常:

图片

会抛出异常是因为Vue尝试执行user.name——一个尚不存在的对象的属性。在该示例中如果使用v-if就会正常工作,因为Vue直到v-if语句为真时才会去尝试生成元素的内部内容。
此外,有两个条件语句和v-if有关:v-else-if和v-else。它们的行为非常符合预期:

图片

当state值为loading时会显示第一个div, state值为error时会显示第二个,state为其他任意值时会显示第三个div。同一时间只有一个元素会显示。

那么,了解了这么多,为什么会有人想要使用v-show呢?
使用v-if会有性能开销。每次插入或者移除元素时都必须要生成元素内部的DOM树,这在某些时候是非常大的工作量。而v-show除了在初始创建开销时之外没有额外的开销。如果希望频繁地切换某些内容,那么v-show会是最好的选择。

此外,如果元素包含任何图片,那么仅使用CSS隐藏父节点可以使浏览器在图片显示之前就加载它,这意味着一旦v-show变为真值,图片就可以显示出来。如果是v-if指令,图片会直到要显示时才开始加载。

阅读全文下载完整组件代码请关注微信公众号: 前端组件开发

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

05-垃圾收集器ParNewCMS与底层三色标记算法详解

文章目录 垃圾收集算法分代收集理论标记-复制算法标记-清除算法标记-整理算法 垃圾收集器Serial收集器Parallel Scavenge收集器ParNew收集器CMS收集器 CMS的相关核心参数亿级流量电商系统如何优化JVM参数设置(ParNewCMS) 垃圾收集底层算法实现三色标记多标-浮动垃圾漏标-读写屏…

高级算法设计与分析(六) -- 分支限界法

系列文章目录 高级算法设计与分析&#xff08;一&#xff09; -- 算法引论 高级算法设计与分析&#xff08;二&#xff09; -- 递归与分治策略 高级算法设计与分析&#xff08;三&#xff09; -- 动态规划 高级算法设计与分析&#xff08;四&#xff09; -- 贪心算法 高级…

数字滤波器的设计

一般滤波器可以分为经典滤波器和数字滤波器。 经典滤波器&#xff1a;假定输入信号中的有用成分和希望去除的成分各自占有不同的频带。如果信号和噪声的频谱相互重迭&#xff0c;经典滤波器无能为力。比如 FIR 和 IIR 滤波器等。  现代滤波器&#xff1a;从含有噪声的时间序…

Envoy

一. Envoy ). Envoy Envoy 于 2017 年 9 月作为孵化项目加入 CNCF。从孵化到毕业&#xff0c;Envoy 都是 CNCF 增长最快的项目之一 Envoy 在吞吐量和延迟方面都表现良好。这在大型云原生部署中至关重要 Envoy 是专为大型现代 SOA&#xff08;面向服务架构&#xff09;架构设计…

python:删除空白

删除字符串末尾的空白 例如&#xff0c;下面的代码&#xff0c;变量hobby指向的字符串在末尾有一个空格&#xff1a; 可以使用函数rstrip()删除字符串末尾的空格&#xff0c;如下&#xff1a; 因为删除字符串末尾的空格并没有赋值给原变量hobby&#xff0c;所以此时查看hobb…

基于ssm房屋租赁平台的设计与开发论文

摘 要 目前对于在外的人员来说租赁房屋是最基本的问题。对于房屋的租赁可以选择直接找房东、找专业的房屋租赁公司和自己在网上找房屋。自己找房东的问题在于需要时间&#xff0c;而且对于需要提前租赁房屋的需要多次跑到小区&#xff0c;找中介租赁房屋的问题在于费用问题&am…

FPGA未解之谜

一.ila一会能加载出波形&#xff0c;一会加载不出波形——在自己做的v7开发板中遇到&#xff0c;其他开发板从未遇到过 1.小梅哥说&#xff1a;可能与硬件jtag连接不稳定导致。

CiteSpace最新安装教程

目录 一、CiteSpace特点介绍 二、CiteSpace安装教程 1、安装java 2、配置java环境变量 3、安装CiteSpace 4、运行CiteSpace 一、CiteSpace特点介绍 CiteSpace是一种用于分析学术文献的可视化工具&#xff0c;旨在帮助研究人员理解学术领域的演化、发现研究热点和趋势。 …

【Python】matplotlib画图_折线图

柱状图主要使用plot()函数&#xff0c;基本格式如下&#xff1a; plt.plot(x,y,label成功几率,colorb,marker.,ms8,mfcr,alpha0.5) 主要参数&#xff1a; x&#xff0c;y&#xff1a;xy轴数据 label&#xff1a;数据标签 color&#xff1a;折线颜色 marker&#xff1a;标…

什么是伦敦金的假突破?假突破为何有效?

部分投资者做伦敦金交易的时候喜欢追逐那些强势的行情&#xff0c;也就是我们所说的突破行情。但是突破行情会带来两种结果&#xff0c;一种是突破成功&#xff0c;而另一种是出现假突破。什么是伦敦金中的假突破呢&#xff1f;为什么假突破会有效呢&#xff1f;下面我们就来讨…

基于JAVA+SpringBoot+Vue的前后端分离的问题反馈处理平台

✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取项目下载方式&#x1f345; 一、项目背景介绍&#xff1a; 在这个信息爆炸的时代…

【自学笔记】Python测试框架pytest

文章目录 📖 介绍 📖🏡 环境 🏡📒 使用方法 📒📝 安装📝 编写测试函数⚓️ 相关链接 ⚓️📖 介绍 📖 pytest 是一个广泛使用的 Python 测试框架,它提供了简单、灵活和可扩展的测试功能。通过 pytest,您可以轻松地创建和运行单元测试、集成测试和功能测试…

若依框架跑起来,Java小白入门(一)

背景 本人Java小白&#xff0c;有一点编程基础&#xff08;c#&#xff09;。企业数字化建设大环境是JAVA&#xff0c;所以需要搞起来&#xff0c;而学习最快的方式就是读代码&#xff0c;学以致用干项目。所以这个系列就是从小白看能否变成小黑。码云上有很多框架&#xff0c;…

centos如何下载chrome

【环境配置】centos安装chrome浏览器_centos chrome-CSDN博客https://blog.csdn.net/tyty2211/article/details/134511154亲测有效&#xff1a;

ssm420基于JavaEE的企业人事管理信息系统的设计与实现论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本企业人事管理信息系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处理完毕庞大的数据…

Flutter本地化(国际化)之App名称

文章目录 Android国际化IOS国际化 Flutter开发的App&#xff0c;如果名称想要跟随着系统的语言自动改变&#xff0c;则必须同时配置Android和IOS原生。 Android国际化 打开android\app\src\main\res\values 创建strings.xml 在values上右键&#xff0c;选择New>Values Res…

众和策略:美股全线上涨 中概股大涨

当地时间12月21日&#xff0c;欧洲股市全线下跌&#xff0c;英国富时100指数、法国CAC40指数、德国DAX指数均小幅下跌。美国通胀降温&#xff0c;美股商场三大指数尾盘飙升&#xff0c;纳斯达克指数、标普500指数均涨逾1%&#xff0c;大型科技股多数上涨&#xff0c;特斯拉涨近…

备忘录里最近删除里面也删除了还能恢复吗

在忙碌的生活中&#xff0c;我经常依赖备忘录来记录重要的信息和灵感。但有一次&#xff0c;我不小心删除了一个重要的备忘录&#xff0c;更让我懊恼的是&#xff0c;我又误操作清空了“最近删除”文件夹。那一刻&#xff0c;我真的感到心急如焚&#xff0c;那些重要的信息似乎…

钓鱼篇(下)

选择水域 比较常用方式如传统的邮箱打点、dns劫持欺骗等方式 其实生活中有非常多攻击点(主要是人们总是自信地认为黑客不会在他们的身边) 班级群里面、教师群等社交关系群里面&#xff0c;本身具备了高信任的特点&#xff0c;所以制作点热点话题&#xff0c;打开一个URL并不…

【虹科分享】金融服务急需数据层改造

文章速览&#xff1a; 数字化转型正在颠覆银行与金融业金融服务的未来Redis Enterprise赋能实时金融应用 金融服务越来越注重实时互动体验&#xff0c;重构关键业务流程&#xff0c;从数据层入手该怎么做&#xff1f; 一、数字化转型正在颠覆银行与金融业 金融科技行业的初创…