v-if 和 v-show 都能控制元素的隐藏和显示。
一般来说,v-if 有更高的切换消耗而 v-show 有更高的初始渲染消耗。因此,如果需要频繁切换 v-show 较好,如果在运行时条件不大可能改变 则v-if 较好。
v-if 的特点:每次都会重新删除或创建元素。
v-show 的特点:每次不会重新进行DOM的删除和创建操作,只是切换了元素的display:none 样式。
下面是一个使用 v-if 和 v-show 的例子
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<div id='app'>
<input type="button" @click="flag=!flag" value="toggle"/>
<!-- v-if的特点:每次都会重新删除或创建元素 -->
<!-- v-show的特点: 每次不会重新进行DOM的删除和创建操作,只是切换了元素的display:none 样式-->
<!-- v-if有较高的切换性能消耗 -->
<!-- v-show有较高的初始渲染消耗 -->
<!-- 如果元素涉及到频繁的切换,最好不要使用v-if,推荐使用v-show -->
<!-- 如果元素可能永远也不会被显示出来让用户看到,则推荐使用v-if -->
<h3 v-if="flag">这是用v-if控制的元素</h3>
<h3 v-show="flag">这是用v-show控制的元素</h3>
</div>
</body>
<script src="vue.min.js"></script>
<script>
var vm = new Vue({
el:'#app',
data:{
flag:true,
}
});
</script>
</html>