区别:
- v-show适用于需要频繁的切换,v-if适用于运行条件很少改变。
- v-show比v-if性能更高,v-show严格意义上说是“条件隐藏”,只能动态的改变样式,符合条件就显示,不符合条件就display:none,但元素还在,不需要增删DOM元素,若项目较大,推荐v-show,减少浏览器后期操作性能。v-if适用于多种条件场景,符合了条件进行渲染,否则不渲染DOM,浏览器中找不到DOM。
- v-show不支持语法,只会在初始化渲染时执行,在切换时不会执行生命后期的过程,v-if切换回实时的销毁和重建内部的事件、钩子函数等。
注意查看控制台的变化
<style>
.pink{
width:200px;
height: 200px;
background-color: pink;
}
.green{
width:200px;
height: 200px;
background-color: green;
}
</style>
<body>
<div id="app">
<div class="pink" v-if='pd'></div>
<div class="green" v-show='pd'></div>
</div>
<script>
var app = new Vue({
el:'#app',
data:{
pd:true, // 切换
// pd:false, // 切换
}
})
</script>
</body>