一、v-if
作用:过条件判断展示或者隐藏某个元素。或者多个元素。通常搭配 v -else或 v-else-if来使用。
使用场景举例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="js/vue.js"></script>
</head>
<body>
<div id="app">
<div v-if="score>=90">优秀</div>
// 这里需要注意,80<score<90在这里不支持。
<div v-else-if="score<90&&score>=80">良好</div>
<div v-else-if="score890&&score>=60">及格</div>
<div v-else>不及格</div>
</div>
<script>
var vue = new Vue({
el: "#app",
data: {
score:10
},
methods: {
handle: function () {
}
}
});
</script>
</body>
</html>
可以看到:根据满足的条件,只渲染了一个div。
二、v-show
作用:根据表达式之真假值,切换元素的 display。
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="js/vue.js"></script>
</head>
<body>
<div id="app">
<div v-show="flag">测试v-show</div>
<button v-on:click="handle">切换</button>
</div>
<script>
var vue = new Vue({
el: "#app",
data: {
flag:true
},
methods: {
handle: function () {
this.flag = !this.flag
}
}
});
</script>
</body>
</html>
三、v-show 和 v-if 区别
- v-show本质就是标签display设置为none,控制隐藏
- v-if是动态的向DOM树内添加或者删除DOM元素
在v-show="flag中,falg=true我们可以看到:
在v-show="flag中,falg=false我们可以看到:
四、v-show和v-if如何选择
如果我们需要频繁的让一个元素显示或者隐藏,这个时候我们推荐使用v-show,如果一个元素我们渲染出来改动比较小的话,推荐使用v-if。因为v-if是动态的向DOM树内添加或者删除DOM元素,性能开销比较大。