Vue中的 v-if 和 v-show条件渲染

本文详细解析了v-if和v-show在Vue中控制DOM元素显示与隐藏的异同,强调了v-if的真正条件渲染和生命周期,以及v-show的CSS隐藏方式。适合理解两者在视图切换和性能优化中的选择策略。

一、v-if 和v-show的共同点

1、都能控制DOM元素的显示和隐藏

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

1、v-if:为false时,动态移除不展示

      1.1:v-if 是直接将dom元素添加或者删除,是实现真正的条件渲染,它会确保在切换过程中条件块内的事件监听器和子组件适当地被销毁和重建

       1.2:v-iffalse变为true的时候,触发组件的beforeCreatecreatebeforeMountmounted钩子,由true变为false的时候触发组件的beforeDestorydestoryed方法。

2、v-show:为false时,添加css样式进行隐藏

2.1:v-show隐藏则是为该元素添加css--display:nonedom元素依旧还在。

2.2:v-show 只是基于CSS的切换,并不会触发组件的生命周期。

例如: 

v-if 是直接将展示的添加;v-show 是将所有的dom元素都保留,将不展示的采用css样式进行隐藏。

结果:一般来说,一次永久展示的采用 v-if 会更好;而如果有存在频繁进行切换展示则采用v-show更好。

 三、v-if 使用场景

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

2、视图之间的切换

四、v-if  和 v-else(按需展示)

<div id="app">

 <h2 v-if="false">{{message}}</h2>

  <h1 v-else>hello</h1>

</div>

v-if为true时,执行if,否则执行else。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值