vue v-if和v-show的共同点和不同点?

v-if和v-show是Vue.js中用于条件渲染的指令,它们根据表达式的真假值决定元素是否显示。v-if会根据条件删除或插入DOM元素,适合于不频繁切换的情况,而v-show通过改变display样式控制显示,适用于频繁切换。两者在编译过程和性能上有所差异,v-if有更高的切换成本,v-show则在初始化时消耗更多。
摘要由CSDN通过智能技术生成

v-if:条件性地渲染一块内容,这块内容只会在指令的表达式返回 truthy[1] 值的时候被渲染。

truthy(真值)指的是在布尔值上下文中,转换后的值为真的值。所有值都是真值,除非它们被定义为 假值(即除 false0""nullundefined  NaN 以外皆为真值)

 

v-show:根据条件展示元素, 不同的是带有 v-show 的元素始终会被渲染并保留在 DOM 中。v-show 只是简单地切换元素的 CSS property display

 v-if和v-show的共同点:

都能控制元素在页面是否显示,当表达式为true的时候,都会占据页面的位置,false相反

v-if和v-show的不同点:

1.控制手段不同:v-show隐藏则是为该元素添加css--display:none,dom元素依旧还在。v-if显示隐藏是将dom元素整个添加或删除

2.编译过程不同:v-if切换有一个局部编译/卸载的过程,切换过程中合适地销毁和重建内部的事件监听和子组件;v-show只是简单的基于css切换

3.性能消耗:v-if有更高的切换消耗;v-show有更高的初始渲染消耗

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值