代码改变世界

v-if 与v-show

2020-03-02 12:43  在思考中成长  阅读(196)  评论(0)    收藏  举报

在vue里面很多人都用的最常用的 v-if 与v-show

先讲讲v-show 

v-show与v-if的用法基本一致,只不过v-show是改变元素的css属性display。当v-show表达式的值为false是,元素会隐藏,查看DOM结构看到元素上加载了内联样式display:none;

所以说元素是存在于DOM 结构上的

<h2>v-show 改变css display</h2>
	<div id="app">
		<p v-show="show">show = true</p>
	</div>
	<script type="text/javascript">
		var app = new Vue({
			el:'#app',
			data:{
				show:false
			}
		})
	</script>

  P元素只被隐藏,但dom已经渲染

 

v-if

v-if是真正的条件渲染,它会根据表达式适当地销毁或重建元素及绑定的事件或子组件。若表达式初始值为false,则一开始元素/组件并不会渲染,只有当条件第一次变为真时才开始编译。

 

总结

v-show只是简单的css属性切换,无论条件真与否,都会被编译。相比之下,v-if更适合条件不经常改变的场景,因为它切换开销相对较大,而v-show适用于频繁切换条件。