今天來學習條件判斷的指令,Vue提供以下指令可以用來做條件渲染(Conditional Rendering):
v-if
用來控制元素要不要render出來
<!--html-->
<div id="app">
<p v-if="showMessage">還剩下21天!</p>
</div>
<!--js-->
<script>
new Vue({
el: "#app",
data: {
showMessage: false
}
});
</script>
這邊一開始不讓p出現,設定為false
,之後再改成true
,重load看看會發生什麼事:v-if="false"
時元素就直接沒render了,#app
裡空空如也!
v-else
一定是依附在v-if
的元素之後,不能在中間穿插別的東西,如果不是連在一起的話就會失效。
<div id="app">
<p id="A" v-if="showMessage">A</p>
<p id="B" v-else>B</p>
</div>
showMessage
若為true
,render #A
,若為false
就render #B
( 非A即B )。
邏輯與javascript的條件判斷式一樣
<div id="app">
<p id="A" v-if="showMessageA">A</p>
<p id="B" v-else-if="showMessageB">B</p>
<p id="C" v-else>C</p>
</div>
邏輯呈現:
結果 | 條件 |
---|---|
show A | showMessageA = true |
show B | showMessageA = true, showMessageB = true |
show C | showMessageA = false, showMessageB = false,showMessageC=true |
v-show
可以與v-if
作對照,模式是一樣的,true
出現、false
就不出現,差別在於 v-show
會render出元素,只是用css display來操縱他看不看的到。
今天學習完條件判斷語法,明天開始學習v-for