Vue记录 v-if VS v-show 使用方法及区别剖析

1.作用

v-if与v-show都可以控制一个模板标签是否在页面上显示

2.使用方法

直接上图

HTML

<div id="app">
			<div v-if="show">{{message}}</div>
			<div v-show="show">{{message}}</div>
</div>

JS

<script>
			var vm = new Vue({
				el:'#app',
				data:{
					show:false,
					message: "Hello Vue"
				}
			})
</script>
要控制message的显隐,只需将JS代码中data的show:false改成show:true即可 

3.区别

  • 当show为true时,可以看到v-show和v-if的DOM都在浏览器上显示

在这里插入图片描述

  • 当show为false时,v-if指令对应的DOM在DOM节点上被移除了,而v-show依然存在,只是加了个display: none;

在这里插入图片描述
由此可以看出:

  • v-if是在动态的控制DOM的添加和删除
  • v-show则不会删除,只是简单的CSS切换,即display: none

所以在需要频繁切换DOM元素的显隐是v-show的性能要高得多,但在首次条件渲染下,v-if要比v-show更好

优劣比较
  • v-if可以配合v-else和v-else-if进行使用,当然,当他们组合使用时,不要在v-if和v-else中间添加别的元素。
  • v-show可以搭配 template 使用。
对生命周期的影响
  • v-show指令状态变化不会影响父组件的生命周期。
  • v-if从false切换到true时,会触发beforeCreate,created,beforeMount,mounted函数钩子。
    v-if从true切换到false时,会触发beforeDestroy和destroyed钩子函数。
  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值