【v-if和v-show的区别,分别会触发什么什么周期】

文章详细对比了Vue中v-show和v-if的控制机制、编译过程和性能消耗。v-show通过CSS控制显示,适合频繁切换;v-if则直接操作DOM,适用于条件渲染,更利于资源管理。在生命周期中,v-if的切换会触发相应钩子函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

控制手段不同

  1. v-show是通过css控制显示
  2. v-if是将整个dom元素添加或者删除

编译过程不同

  1. v-show是通过为dom元素添加css属性:display:none实现是否隐藏
  2. v-if是通过局部的编译/卸载实现切换,切换过程中会合适的销毁和重建内部监听事件和子组件

编译的条件不同(触发生命周期)

v-if是真正的条件渲染,能够保证在切换的过程中适当销毁和重建内部监听事件和子组件

  1. v-show在true和false的切换中,不会触发生命周期
  2. v-if在true变为false的时候卸载dom,触发beforeDestoryed和destoryed
  3. v-if在false变成true的时候重建dom,触发beforeCreate、create、beforeMount、mounted

性能消耗不同

  1. v-show的初始渲染消耗个更多
  2. v-if的切换消耗更多

使用场景不同

  1. 频繁的切换,用v-show
  2. 初始渲染后,运行条件很少改变,用v-if
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值