·

Vue3中的条件渲染(v-if、v-else-if、v-else 以及 v-show)的使用(实例详解)

Published at 2024-08-29 21:18:49Viewed 246 times
Please reprint with source link

v-if v-else v-else-if

v-if指令用于条件性地渲染一块内容,这块内容只会在指令的表达式返回truth值的时候被渲染。

<script setup>
const have = ref(true)
</script>
<template>
	<div id="app">
		<div v-if = "have">我可以被显示出来</div>
	</div>
</template>

当have的值为true时,div块被显示。

而当have为false

const have = ref(false)

页面无显示,且具有v-if = “have”的div块不存在在html结构中。

也可以用v-else添加一个“else模块”,和js的语法相同,当if条件不成立,则显示else模块内容。

在vue2.1.0新增的v-else-if,更是可以与上面两个共同使用,但是v-else和v-else-if都必须紧跟在v-if的后面使用(v-else-if可以跟在v-else-if后面)

例子:

<script setup>
const type = ref("哎哎哎")
</script>
<template>
	<div id="app">
		<div v-if="type==='A' ">A</div>
		<div v-else-if="type=='B'">B</div>
		<div v-else-if="type=='C'">C</div>
		<div v-else-if="type=='D'">D</div>
		<div v-else>not A/B/C/D</div>
	</div>
</template>

执行结果:

这里其他的div在html结构中已不存在。

<template>元素上使用v-if条件渲染分组

因为v-if是一个指令,所以必须将它添加到一个元素上,但是如果想切换多个元素呢???此时就可以把一个< template>元素当不可见的包裹元素,并在上面使用v-if,最终的渲染结果将不包含< template>元素。

例子:

<script setup>
const ok = ref(true)
</script>
<template>
	<div id="app">
		<template v-if="ok">
			<h1>哈哈哈哈</h1>
			<p>这是一个段落</p>
			<p>这是一个段落</p>
		</template>
	</div>
</template>

运行结果:

v-show

v-show是另一个用于根据条件展示元素的选项,,用法和v-if大致相同

<h1 v-show="ok">hello</h1>

不同的是带有v-show的元素时钟会被渲染并且保留在dom中,v-show只是简单的切换原色的css属性display

注意)v-show不支持template元素,也不支持v-else

例子:

<script setup>
const ok = ref(false)
</script>
<template>
	<div id="app">
		<div v-show="ok">hhhhhhhhhhh</div>
	</div>
</template>

不显示但存在

v-if和v-show的区别

v-if

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

v-show

相比v-show就简单的多,不管初始条件是什么,元素始终都会被渲染,而且只是简单地基于css进行切换。

两者的使用

一般来说,v-if有更高的切换开销,而v-show有更高的初始渲染开销,因此,如果需要非常频繁地切换,则用v-show更好一些;如果运行的条件很少改变,则用v-if更好。

0 人喜欢

Comments

There is no comment, let's add the first one.

弦圈热门内容

克服外部环境相关性局限的船舶运动预测——相关性分析阶段

引言伴随全球航运贸易的持续增长,船舶航行安全已成为业界日益关注的核心议题。海上船舶的姿态受多重环境因素综合作用,如海浪和风力的动态影响,其运动状态呈现复杂多变性。船舶的运动姿态通常通过六个自由度来精确刻画,包括艏摇、横摇、纵摇、垂荡、横荡及纵荡【李荣宗,张超群.基于长短期记忆模型的船舶横摇运动预测】。在这六个自由度中,横摇运动因其对航行安全构成的潜在威胁最为显著而备受重视。特别是在遭遇纵向波浪时,船舶极易产生大幅度横摇,且其运动特性往往表现出显著的非线性和固有的难以预测性。这种剧烈的横向摇晃可能在短时间内迅速加剧,甚至诱发危险的参数横摇现象,导致其幅度和频率的异常波动,从而极大地增加船舶倾覆或失稳的风险。鉴于船舶横摇运动的复杂性及其对航行安全的深远影响,准确获取并理解船舶实时姿态数据及其与外部环境,特别是与海浪特征之间的耦合关系显得尤为关键。传统的船载传感器虽能提供船舶姿态信息,但其与诱发横摇的主导因素——海浪之间的直接关联性分析仍有待深入。在此背景下,本研究首先探索船舶姿态运动数据与环境波浪雷达数据之间的内在相关性,通过对这两种异构数据源进行融合与深入分析,我们期望能够揭示海浪要素( ...

小众开源工具分享——5分钟上手视频压缩神器:HandBrake

https://soft.kafan58.com/soft/261375.html ‌HandBrake 是一款跨平台开源视频转码软件‌,支持 Windows、Mac 和 Linux 系统,主要用于视频格式转换、压缩处理及多轨道音视频编码,最新版本为 v1.9.2(截至 2025 年)。‌核心功能与特点‌:‌多格式支持‌: 输入源:支持 DVD、蓝光、AVI、MKV、MP4、MOV 等常见格式。‌‌输出格式:MP4、MKV、WebM 等主流容器格式,兼容各类设备和播放器。‌‌高效编码与压缩‌: 集成 x264、H.265(HEVC)、VP9 等视频编码器,支持恒定质量(CRF)与平均码率(CBR)控制。‌‌可通过调整分辨率、帧率、比特率等参数压缩视频大小。‌‌高级功能‌: 批量转换、字幕嵌入、音轨选择、章节标记及视频滤镜(如裁切、旋转)。‌‌支持加密 DVD 处理和多任务并行转换。‌‌‌适用场景‌:‌格式转换‌:将不兼容的视频转换为 MP4/MKV 等通用格式。‌‌压缩优化‌:减少文件体积以节省存储或传输时间。‌‌专业编辑‌:自定义分辨率、帧率、字幕等参数,满足多样化需求。‌‌

6月6号-6月7号 荷兰鹿特丹

【🇳🇱6.6-6.7 鹿特丹】 ​突破模式-鹿特丹 ​大 获 全 胜 ​战地V鹿特丹地图圣地巡礼,又是一个我有好多好兄弟似在这里的地方()p3《我是谁》里面的成龙快乐楼()也是一个圣地巡礼,是的主要任务就是圣地巡礼来了 ​鹿特丹也让我有很强的回国的感觉,主要整体感觉非常现代(毕竟古建筑大部分都炸没了),看起来和国内大都市一样,但是没有国内的快节奏,不只是方块屋铅笔屋等标志性的景点,大部分建筑感觉都很有设计感却不违和 ​小孩堤防风车群不说了,太,美,了😭走在空无一人两边都是芦苇风车的小路上,远处是在吃草的奶牛和成排的野雁,密密麻麻的小雨铺面而来,再次感受到了在瑞士劳特布龙嫩漫步时那种放空大脑一个人立于天地间的平静,不过后面突然狂风暴雨又是另外一回事了[裂开]

6月10号 欧洲之旅最后一站:荷兰纳尔登

【🇳🇱6.10 纳尔登】 ​欧洲旅游最后一站,居留卡马上就到期了[裂开]特地来阿姆斯特丹附近观摩一下整个城镇都是棱堡的星型要塞城镇纳尔登。和阿维拉的城墙一样,纳尔登的棱堡结构也保存得非常完好,可以明确看到三角堡,幕墙,斜堤等。而且也是亲眼见到荷兰棱堡特有的与荷兰水线防御体系相结合的壕沟护城河设计。如今原有保存完好的堡垒已经彻底民用化,被用作健身房,餐厅,画室等。小镇几乎没有游客,甚至连本地人也寥寥无几,停满车的街道上空无一人,除了一座博物馆外几乎没有任何旅游业的痕迹(甚至博物馆的售票员老奶奶还特意给了我半票)。也就只有在没被商业化的街道上才能看到所谓古镇古城最真实的面貌了

6月7号 弦圈APP于高考首日的更新日志😀

这段时间虽然因为很多突发事情导致耽搁了APP的上架,但是我还是给弦圈APP进行了大量的修改和优化。新版的APP还是叫做V1.0版吧,新版APP主要变动如下:添加微信分享、QQ分享功能,方便用户分享弦圈内容。接上,添加圈子分享、文章分享、帖子分享、图片分享功能。其中圈子、文章、帖子分享包括微信好友分享、朋友圈分享、QQ好友分享、QQ空间分享。添加忘记密码功能。该功能原本只有Web端有,现在手机APP端补上。添加扫码登录功能。在弦圈Web端,用户可以通过APP扫码的方式进行登录。圈子中添加查看标签功能,相当于圈子内容的二次分类。该功能原本只有Web端有,现在手机APP端补上。写文章和提问题功能中的“添加词条”,原本只能选择原有词条,不能创建新词条。现在在这个地方允许用户快速新建词条。优化页面样式,修复部分机型导航栏遮盖问题(见 应用详情-注意事项)。值得一提的是该问题微信、QQ等APP都有😀。修复圈子中样式不改变以及样式错乱bug。修复APP端帖子与Web端帖子不兼容问题。修改APP开屏启动图案样式,之前的启动图案太小了😅,看得不舒服。目前只记得改过那么多东西了,就这10点改变,每一点都要 ...