Vue常用指令v-if與v-show的區(qū)別淺析
前言
v-show 和v-if 是比較常用的Vue指令,經(jīng)常用來(lái)判斷渲染部分代碼塊,但兩者具體的區(qū)別在哪里呢 ???
首先我們可以來(lái)看一下Vue中文社區(qū)說(shuō)明文檔的介紹:

Vue中文社區(qū)說(shuō)明文檔中簡(jiǎn)單來(lái)說(shuō)是:初始渲染的時(shí)候進(jìn)行條件判斷展示;
1. v-show
v-show指令的作用是:根據(jù)真假值切換元素的顯示狀態(tài),是響應(yīng)式的
語(yǔ)法表達(dá)v-show = " 表達(dá)式 "
原理是修改元素的的CSS屬性(display)來(lái)決定實(shí)現(xiàn)顯示還是隱藏
指令后面的內(nèi)容最終都會(huì)解析為布爾值
值為真(true)的時(shí)候元素顯示,值為假(false)的時(shí)候元素隱藏
數(shù)據(jù)改變之后呢對(duì)應(yīng)的元素的顯示狀態(tài)也是會(huì)同步更新的
<body>
<div id="app">
<input type="button" value="切換顯示" @click="changeIsShow" />
<p v-show="isShow">不裝了,我攤牌了,沒(méi)錯(cuò)你要找的就是我</p>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
var app = new Vue({
el:"#app",
data:{
isShow:false
},
methods:{
changeIsShow(){
this.isShow = !this.isShow
}
}
})
</script>
</body>
2. v-if
v-if指令的作用:根據(jù)表達(dá)式的真假切換元素的顯示狀態(tài)
v-if = "表達(dá)式"
本質(zhì)是通過(guò)操縱dom元素來(lái)進(jìn)行切換顯示
表達(dá)式的值為true的時(shí)候元素存在于dom樹(shù)中,為false的時(shí)候從dom樹(shù)中移除
<body>
<div id="app">
<input type="button" value="點(diǎn)我切換顯示" @click="changeIsShow" />
<p v-if="isShow">不裝了,我攤牌了,沒(méi)錯(cuò)你要找的就是我</p>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
var app = new Vue({
el:"#app",
data:{
isShow:false
},
methods:{
changeIsShow(){
this.isShow = !this.isShow
}
}
})
</script>
</body>
3. v-show和v-if的區(qū)別
1. 在原理方面的區(qū)別
- v-show指令:元素始終被渲染到HTML,它只是簡(jiǎn)單的偽元素設(shè)置css的style屬性,當(dāng)不滿足條件的元素被設(shè)置style=“display:none”的樣,是通過(guò)修改元素的的CSS屬性(display)來(lái)決定實(shí)現(xiàn)顯示還是隱藏
- v-if指令:滿足條件是會(huì)渲染到html中,不滿足條件時(shí)是不會(huì)渲染到html中的,是通過(guò)操縱dom元素來(lái)進(jìn)行切換顯示
2. 在使用應(yīng)用場(chǎng)景方面的區(qū)別
- v-if需要操作dom元素,有更高的切換消耗.
- v-show只是修改元素的的CSS屬性有更高的初始渲染消耗。
- 如果需要非常頻繁的切換,建議使用v-show較好,如果在運(yùn)行時(shí)條件很少改變,則使用v-if較好
總結(jié)
到此這篇關(guān)于Vue常用指令v-if與v-show區(qū)別的文章就介紹到這了,更多相關(guān)Vue指令v-if與v-show區(qū)別內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
關(guān)于Vue組件庫(kù)開(kāi)發(fā)詳析
這篇文章主要給大家介紹了關(guān)于Vue組件庫(kù)開(kāi)發(fā)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用vue具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-07-07
vuex?mutation?action同級(jí)調(diào)用方式
這篇文章主要介紹了vuex?mutation?action同級(jí)調(diào)用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03
Vue.js在數(shù)組中插入重復(fù)數(shù)據(jù)的實(shí)現(xiàn)代碼
這篇文章主要介紹了Vue.js在數(shù)組中插入重復(fù)數(shù)據(jù)的實(shí)現(xiàn)代碼,需要的朋友可以參考下2017-11-11
Vue詳細(xì)講解Vuex狀態(tài)管理的實(shí)現(xiàn)
這篇文章主要介紹了Vuex狀態(tài)管理器的使用,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-08-08
element 穿梭框性能優(yōu)化的實(shí)現(xiàn)
本文主要介紹了element 穿梭框性能優(yōu)化,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-10-10

