我们使用v-if实例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>v-if,v-show,v-for 指令</title>
<script src="vue.js"></script>
</head>
<body>
<div id="root">
<div v-if="show">hello world</div>
<button @click="handleClick">toggle</button>
</div>
<script>
new Vue({
el:"#root",
data:{
show: true
},
methods:{
handleClick: function(){
this.show = !this.show;
}
}
})
</script>
</body>
</html>
显示效果:
点击按钮时隐藏:
再点击按钮时显示:
当使用v-if时,你点击按钮隐藏或者显示时,实际上就是把hello world这个标签直接从dom里面移除或增加,
我们把v-show替换v-if,实例如下所示:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>v-if,v-show,v-for 指令</title>
<script src="vue.js"></script>
</head>
<body>
<div id="root">
<div v-show="show">hello world</div>
<button @click="handleClick">toggle</button>
</div>
<script>
new Vue({
el:"#root",
data:{
show: true
},
methods:{
handleClick: function(){
this.show = !this.show;
}
}
})
</script>
</body>
</html>
效果如下:
当点击按钮隐藏时:
当点击按钮显示时:
当使用v-show时,你点击按钮隐藏时,实际上div中的hello world这个元素不会从dom里删除掉,而是加了一个css的display:none的属性。
总结:
如果在目前这种使用的场景中我们要频繁的对div这个标签进行展示和隐藏。我们应该使用v-if还是v-show呢!事实上我们使用v-show会更好一点,因为它不会每次去增加dom或者删除dom,因此性能会相对更高一些!
如果div显示的频率不是这么大,你只需要做一次显示或者隐藏,你使用v-if会更好一些!
参考:参考DellLee老师的相关知识点!