v-if和v-show的区别
一、v-if、v-else和v-show指令
v-if和v-else就是用于多个元素 ,通过条件判断展示或者隐藏某个元素
v-show指令是根据表达式的值来显示或隐藏某个元素,当v-show的值为true时,元素显示;如果v-show值为false时,元素隐藏
例如:
<div id="app">
<div v-if='ttt'>当ttt为true时显示(这是if和else)</div>
<div v-else>当ttt为false时显示(这是if和else)</div>
<div v-show='ttt'>当ttt为true时(这是show)</div>
</div>
<script src="vue.js"></script>
<script>
var app = new Vue({
el: "#app",
data: {
ttt: false
}
})
</script>
当data: { ttt: true }
时,结果如下:
当data: { ttt: false }
时,结果如下:
当为“false”查看控制台结果如下:
可以发现对于v-show指令,元素隐藏时,只是增加了display:none的样式,而 v-if 指令则直接通过把<div v-if='ttt'>当ttt为true时显示(这是if和else)</div>
该行删除来实现了隐藏效果
二、实例:运用v-if(v-else v-else-if )和v-show写一个成绩评判
代码如下:
<div id="app">
<input type="text" v-model="n1">
<div v-show='flag' v-if='n1>=90'>你太牛x了</div>
<div v-show='flag' v-else-if='n1<90&&n1>=80'>优秀</div>
<div v-show='flag' v-else-if='n1<80&&n1>=60'>一般</div>
<div v-show='flag' v-else>差</div>
<button v-on:click='btn1'>评测</button>
</div>
<script src="vue.js"></script>
<script>
var app = new Vue({
el: "#app",
data: {
n1:0,
flag: false
},
methods: {
btn1: function () {
this.flag = !this.flag;
}
}
})
</script>
结果如下:
当输入的分数为“59”分时
当输入的结果为“159”分时