vue中v-if和v-show的区别

文章为本菜鸡学习过程中遇到的问题记录,不是专业的,如有问题和不足还请大佬指正 >参考文章

文章目录


前言

问题描述:

在完成表单验证任务的学习过程中,发现在使用v-show隐藏元素后,依旧会被dom捕获,rules规则依旧有效,在未显示表单的前提下,依旧显示'必填项未填写'的提示。

(表单验证,感兴趣的话可以看我的另外一篇博文:element表单校验)

虽然在使用上v-if和v-show没有什么太大的区别,但是本质上还是存在一定的差异性!


1、v-if

在vue中,v-if用于根据表达式来操作DOM元素,可以切换元素的显示和隐藏;表达式的值为true时,元素存在于dom树中,表达式为false时,元素从dom树中移除,语法为v-if="表达式"。

c 复制代码
<div v-if="isAnonymous">
	<el-form-item prop="lianxidh" ref="lianxidh" :rules="[{ required: true, message: '【举报人电话】不能为空', trigger: 'blur' }]">
		<el-input disabled v-model="state.form.lianxidh" type="text" />
	</el-form-item>
</div>

2、v-show

v-show指令的作用是根据真假切换元素的显示状态,原理是修改元素的display实现显示隐藏,指令后面的内容,最终都会解析为布尔值,值为true元素显示,值为false元素隐,数据改变之后,对应元素的显示状态会同步更新

3、v-if和v-show的区别

【v-show】

①本质就是标签display设置为none,控制隐藏只是基于css进行切换。

②v-show有更高的初始渲染消耗。

③v-show适合频繁切换的情况。

【v-if】

①动态的向DOM树内添加或者删除DOM元素。

②v-if有更高的切换消耗。

③v-if适合运行条件很少改变的情况。

相关推荐
m0_敲代码的彭于晏16812 小时前
Vercel 前端部署平台深度评测
前端
2301_322414280412 小时前
基于SpringBoot+Vue的休闲零食超市管理系统的设计与实现59004-计算机毕设 原创(免费领源码+部署教程+开发环境)
java·vue.js·spring boot·redis·mysql·决策树·推荐算法
怕浪猫14 小时前
外包和大厂的前端代码,差在凌晨三点
前端·面试·github
m0_敲代码的彭于晏16814 小时前
Vercel 前端部署与全栈开发实战指南
前端·状态模式
徐小夕14 小时前
花了3个月,我们做了一款 AI 版的“飞书文档”
前端·算法·github
贾伟康14 小时前
【化学实验室|17】HarmonyOS ArkTS 亮暗色与视觉令牌实战:集中颜色、间距和交互状态避免页面割裂
前端·移动开发·harmonyos·arkts·arkui
Csvn15 小时前
SSR/SSG/ISR(上):峡谷与渲染策略的时间预算
前端
Csvn15 小时前
SSR/SSG/ISR(下):可交互性、新鲜度与回源账
前端
酷炫码神16 小时前
Day 10|Pinia 状态管理:把散落在各组件的数据,收进一个全局仓库
android·开发语言·javascript
Elcker18 小时前
YnuoAgent(依诺):一个 npm 包,跑起属于自己的 AI 研发平台
前端·人工智能·npm