v-show和v-if的区别和适用场景,以及使用时的一些问题。

v-if和v-show的区别

  • v-if会控制组件销毁和重建,且v-if是惰性的,如果条件为假不会创建组件

  • v-show则是无论初始条件是什么,元素总是会渲染,只是通过css控制是否展示

适用场景

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

v-if和v-show使用时的一些问题

v-show不容易处理条件快速变化的情况

如果条件快速多次变化时,比如,从false变成true,又立刻变成false时。(这里的快速指的是极快的速度,比如连续调用两个方法,分别使条件变成true和false)
v-show由于频繁进行DOM/CSS 操作,有可能导致显示出问题,比如条件已经从false变成true又切换回了false,v-show可能会按照true进行处理。而v-if能处理这种情况,但这也意味着更高的计算成本在组件的创建和销毁上。

v-if在处理条件多次变化的情况时,可能导致位置变化

而v-if由于控制组件销毁和重建,在处理慢速多次的条件变化时,可能会导致组件渲染的位置和之前不一样(在使用elementui的组件时遇到过这种情况)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

EEEzhenliang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值