v-if与v-show的区别

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

在vue中,v-if与v-show的作用效果是相同的,都是控制元素在页面是否显示,他们在用法上也是相同的,当表达式为 true 时,会占据页面的位置,当表达式为false时,不会占据页面的位置

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

①控制手段不同

v-show为false时,是为该元素添加了css中的display:none,dom元素依旧还在,

v-if true、false切换时,是将整个dom元素进行创建和移除

②编译过程不同

v-if切换有一个局部编译/卸载的过程,切换过程中合适的销毁和重建内部的事件监听和子组件;

v-show的切换是基于css的切换

③编译条件不同

v-if时真正的条件渲染,他会确保在切换工程中条件块内的事件监听器和子组件适当地被销毁的重建。

v-show的切换不会触发组件的生命周期

v-if的切换会触发组件的生命周期

④性能消耗不同

v-if切换时比较消耗性能

v-show初始渲染时比较消耗性能

⑤初始渲染

v-if初始值为false时,组件不会渲染,生命周期钩子不会执行

v-if初始值是true时,组件会进行渲染,

依次执行:beforeCreate—created—beforeMount—mounted钩子

v-show无论初始状态是什么,组件都会渲染,依次执行

beforeCreate—created—beforeMount—mounted钩子

⑥切换

v-if切换:

false=>true

依次执行:beforeCreate—created—beforeMount—mounted钩子

true=>false

依次执行:beforeDestroy—destroyed钩子,代码销毁不存在页面中,没有生成代码

v-if切换

true=>false

display:none;所在的标签还是生成了代码,只是没有进行显示而已

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值