v-if和v-show相同之处
v-if 和 v-show 都具有条件判断的功能,如下面案例所示,“hello word” 都会在浏览器上消失
<body>
<div id="app">
<h2 v-if="isshow" >{{message}}</h2>
<h2 v-show="isshow" >{{message}}</h2>
</div>
<script src="../vue.js"></script>
<script>
var app = new Vue({
el:'#app',
data:{
message:"hello world",
isshow:true
}
})
</script>
</body>
v-if和v-show不同之处
现在将上面两个h2标签里分别加上不同的id属性,和上面执行相同的步骤,“hello word” 也都会在浏览器上消失,究竟有什么不同呢??
<div id="app">
<h2 v-if="isshow" id="if">{{message}}</h2>
<h2 v-show="isshow" id="show">{{message}}</h2>
</div>
在控制台中发现有一个h2标签消失了,有一个h2标签只是隐藏了,而隐藏的标签正是v-show的标签
总结
(1)v-if条件为false时,包含 v-if 指令的元素根本就 不会存在 dom中
而v-show条件为false时,v-show只是给我们的元素增加了一个行内样式:display:none
(2)开发中如何选择
当需要在显示和隐藏之间切换很频繁时,使用v-show
当只有一次切换时,通过使用 v-if