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

1.v-if

v-if是通过控制dom节点是否生成来控制元素的显示和隐藏

例如:

<template>
  <div id="app">
    <div id="content" v-if="false">v-if隐藏</div>
  </div>
</template>

在这里插入图片描述
可以看到并没有生成id为content的dom节点

2.v-show

v-show生成了dom节点,之后通过dom节点的内联样式display来控制元素的显示和隐藏
v-show为true相当于display:block,false相当于display:none
例如:

<template>
  <div id="app">
    <div id="content" v-show="false">v-show隐藏</div>
  </div>
</template>

在这里插入图片描述
可以看到生成了id为content的dom节点,并设置了内联样式display:none

3.v-if和v-show的比较和使用场景

比较:v-if是“真正”的条件渲染,它会在切换的过程中确保元素的销毁和重建而v-show则不管条件是什么,都会进行渲染,之后通过css样式的切换来控制元素的隐藏和显示,所以对于切换来说v-if有着更高的切换开销。

使用场景:因为v-if有着更高的切换开销,所以一般用于条件很少改变的场景,如果条件非常频繁切换则适用v-show

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值