vue中v-show和v-if的異同及v-show用法
一、官方解釋:
1.v-if 是“真正”的條件渲染,因?yàn)樗鼤_保在切換過程中條件塊內(nèi)的事件監(jiān)聽器和子組件適當(dāng)?shù)乇讳N毀和重建。
2.v-if 也是惰性的:如果在初始渲染時條件為假,則什么也不做——直到條件第一次變?yōu)檎鏁r,才會開始渲染條件塊。
3.相比之下,v-show 就簡單得多——不管初始條件是什么,元素總是會被渲染,并且只是簡單地基于 CSS 進(jìn)行切換。
4.一般來說,v-if 有更高的切換開銷,而 v-show 有更高的初始渲染開銷。因此,如果需要非常頻繁地切換,則使用 v-
show 較好;如果在運(yùn)行時條件很少改變,則使用 v-if 較好。
二、個人理解:
1.相同點(diǎn):v-show和v-if都能控制元素的顯示和隱藏。
2.不同點(diǎn):
•實(shí)現(xiàn)本質(zhì)方法不同 ◦v-show本質(zhì)就是通過設(shè)置css中的display設(shè)置為none,控制隱藏
◦v-if是動態(tài)的向DOM樹內(nèi)添加或者刪除DOM元素
•編譯的區(qū)別 ◦v-show其實(shí)就是在控制css
◦v-if切換有一個局部編譯/卸載的過程,切換過程中合適地銷毀和重建內(nèi)部的事件監(jiān)聽和子組件
•編譯的條件 ◦v-show都會編譯,初始值為false,只是將display設(shè)為none,但它也編譯了
◦v-if初始值為false,就不會編譯了
•性能 ◦v-show只編譯一次,后面其實(shí)就是控制css,而v-if不停的銷毀和創(chuàng)建,故v-show性能更好一點(diǎn)。
◦注意點(diǎn):因?yàn)関-show實(shí)際是操作display:" "或者none,當(dāng)css本身有display:none時,v-show無法讓顯示
◦總結(jié):如果要頻繁切換某節(jié)點(diǎn)時,使用v-show(無論true或者false初始都會進(jìn)行渲染,此后通過css來控制顯示隱藏,因此切換開銷比較小,初始開銷較大),如果不需要頻繁切換某節(jié)點(diǎn)時,使用v-if(因?yàn)閼屑虞d,初始為false時,不會渲染,但是因?yàn)樗峭ㄟ^添加和刪除dom元素來控制顯示和隱藏的,因此初始渲染開銷較小,切換開銷比較大)
vue指令之v-show的用法
1、判斷謀個元素是否顯示或隱藏
<el-button v-show="list.power == 1" @click="toUpload" class="toUpload" type="primary">去上傳<i class="el-icon-upload el-icon--right"></i></el-button>
通過接口里的參數(shù)list.power是否等于1,如果等于1,則為“true”,否則為“false”,然后v-show指令,等于true的時候顯示,false的時候隱藏。
2、三目運(yùn)算符判斷
<a class="warn" v-show="true ? item.ai != null : item.ai == null" :href="'http://172.168.80.149:14081/gateway/upload/upload/downloadFile?url='+item.urlai">AI</a>
其實(shí)這個也可以簡寫成第一種形式
<a class="warn" v-show="!item.ai == null" :href="'http://172.168.80.149:14081/gateway/upload/upload/downloadFile?url='+item.urlai">AI</a>
這樣更簡單哦
總結(jié)
以上所述是小編給大家介紹的vue中v-show和v-if的異同及v-show用法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
相關(guān)文章
vue3 實(shí)現(xiàn)牙位圖選擇器的實(shí)例代碼
這篇文章主要介紹了vue3 實(shí)現(xiàn)牙位圖選擇器的實(shí)例代碼,代碼簡單易懂,需要的朋友參考下吧2025-04-04
基于vue框架手寫一個notify插件實(shí)現(xiàn)通知功能的方法
這篇文章主要介紹了基于vue框架手寫一個notify插件實(shí)現(xiàn)通知功能的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03
vue3+ts中ref與reactive指定類型實(shí)現(xiàn)示例
這篇文章主要為大家介紹了vue3+ts中ref及reactive如何指定類型的實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06
element-plus按需引入后ElMessage與ElLoading在頁面中的使用
這篇文章主要介紹了element-plus按需引入后ElMessage與ElLoading在頁面中的使用方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-09-09
vue element項目引入icon圖標(biāo)的方法
這篇文章主要介紹了vue element項目引入icon圖標(biāo)的方法,本文圖文并茂給大家介紹的非常詳細(xì),需要的朋友可以參考下2018-06-06
Vue路由守衛(wèi)及頁面登錄權(quán)限控制的設(shè)置方法(兩種)
這篇文章主要介紹了Vue路由守衛(wèi)及頁面登錄權(quán)限控制的設(shè)置方法,本文通過實(shí)例代碼通過兩種方法給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-03-03

