v-if
與 v-show
的區別<div id="app">
<input type="checkbox" v-model="isShow">
<div v-if="isShow">
<p>v-if</p>
</div>
<div v-show="isShow">
<p>v-show</p>
</div>
</div>
const vm = Vue.createApp({
data() {
return {
isShow: true,
}
}
}).mount('#app')
用 v-model
雙向綁定 data
的 isShow
,當 isShow
為 true
時,v-if
和 v-show
會顯示,false
比較特別,v-if
是整個元素都消失,v-show
則變成display:none
隱藏起來:data
的 isShow
值為: true
。data
的 isShow
值為: false
,v-show
始終都會保留在 DOM
中,v-if
是真正的條件渲染,依據條件,銷毀或是重建。
v-else
<div v-if="value === A">A</div>
<div v-else>B</div>
v-else
元素必須接在 v-if
或 v-else-if
,才能確保 v-else
是預期產生出來的元素。
v-else-if
<div v-if="total === 0"> {{ total }} </div>
<div v-else-if="total > 5" style="background-color: blue;"> {{ total }} </div>
<div v-else="total > 10" style="background-color: red;"> {{ total }} </div>
v-else-if
也是必須接在 v-if
之後,v-else-if = "條件" ,相當於 JavaScript
的 else if(條件)。
如上述有問題,請不吝給予指教