vue里面v-if和v-show的区别

vue里面v-if和v-show的区别:
(1)v-if的true值控制是否会生成VNode,进而生成真是的dom树。当v-if的值为true的时候,会生成相应vnode,进而生成dom树。当取值为false的时候,直接不生成vnode,因此也不会生成dom树。
看下面简单的代码:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title>搭建工程</title>
	</head>
	<body>
		<div id="box">
			<p v-if="status">I am v-if</p>
			<button @click="status = !status">v-if的切换</button>
		</div>
		<script src="js/vue.min.js" type="text/javascript" charset="utf-8"></script>
		<script type="text/javascript">
			new Vue({
				el:"#box",
				data:{
					status:true
				},
				methods:{
					
				}
			})
		</script>
	</body>
</html>

点击按钮改变v-if的值。dom里面的差别:
v-if的值为true:
在这里插入图片描述
v-if的值为false:
在这里插入图片描述

(2)v-show不管其值为true或者为false。都会生成vnode,进而生成dom树。其控制元素显示隐藏是通过元素上面的style样式(display:none)来进行控制。
上截图:
v-show为true的时候:
在这里插入图片描述
v-show的值为false的时候:
在这里插入图片描述
通过图片对比就可以看出区别。v-show时dom树是存在的。

(3)使用v-if可以有效的减少节点和树的渲染量,但是会使得树不稳定;使用v-show可以保持树的稳定性,但是不能减少树的节点的渲染量。

实际开发中:
实际开发者,对于需要频繁变化显示状态的使用v-show,以保持树的稳定性;显示状态切换较少的情况下,使用v-if,减少节点和树的渲染量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值