相信很多vue的初学者都对这两个指令的文档说明一脸懵逼,我刚开始的时候也是,下面就直接用一个例子来做一个最直观的表达.
用过这两个指令的都知道这两个指令是控制元素的显示跟隐藏,我也就不再过多介绍这两个指令的用法了,直接上代码吧
<style>
img{
width: 200px;
}
</style>
</head>
<body>
<div id="app">
<input type="button" value="点击图片显示隐藏" @click='isShow = !isShow'>
<img src="./img/1.png" v-show="isShow" alt="">
//第一张照片用的是v-show
<img src="./img/2.png" v-if='isShow' alt="">
//第二张照片用的是v-if
</div>
</body>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
let app = new Vue({
el:'#app',
data:{
isShow:true
},
})
</script>
接下来点击按钮让他们隐藏
**现在可以得出一个结论:
v-show:
操纵display 为 none 或者block 元素在dom树中还是存在的
适用情况:
因为操纵dom树比较耗性能,所以如果元素需要频繁的切换显示和隐藏 一般 使用v-show
v-if:
会把元素从dom树中移除,是真的没有了
使用情况:
不是频繁切换显示和隐藏,可以使用v-if**