1.官網(wǎng)概念描述
v-if 是'真正的'條件渲染,因為它會確保在切換過程中條件塊內(nèi)的事件監(jiān)聽器和子組件適當(dāng)?shù)乇讳N毀和重建.
v-if 也是惰性的,如果在初始渲染時條件為假,那么什么都不做- - 直到條件第一次為真的時候才會開始渲染條件塊,相比之下,v-show就簡單得多- - 不管初始條件是什么,元素總會被渲染,并且只是簡單的基于css進行切換.
一般來說,v-if 有更高的切換開銷,而 v-show 有更高的出事渲染開銷.因此,如果需要非常頻繁的切換,那么使用v-show好一點;如果在運行時條件不太可能改變,則使用v-if 好點.
2.實踐結(jié)果
摘錄: 如果用v-if的話,整個dom結(jié)構(gòu)壓根就不會出現(xiàn)在頁面上,如果是用v-show的話,要視后面的條件來定,如果是true,則顯示,如果為false,則加上style=”display:none
”. 所以呢,如果是組件之類的大塊頭,個人覺得用v-if更好一些,如果是一些暫時性隱藏,一會要顯示的,還是v-show更方便。對于v-style和v-show來比較,v-show相當(dāng)于是v-style=”display:none”
和v-style=”display:block
”的快捷方式。
1. v-show不起作用問題
最近在用vue_element-ui
開發(fā)多頁面應(yīng)用,其中遇到v-show
不起作用問題.
a.問題描述,如下圖(預(yù)想達到的效果),其中表格數(shù)據(jù)是動態(tài)變化的,包括標(biāo)題也會根據(jù)后臺數(shù)據(jù)發(fā)生改變,如果后臺返回的標(biāo)題為空,那么就不顯示該列的內(nèi)容.反之則顯示該列的所有數(shù)據(jù).
那么就會出現(xiàn)上圖的效果,也就是v-show沒能隱藏標(biāo)題值為null的那列數(shù)據(jù)
b.解決方法:
將v-show改為v-if即可實現(xiàn)圖一中的效果.
c.總結(jié)(個人見解):
由于el-table-column會生成多行標(biāo)簽元素,根據(jù)v-show是不支持template語法的,推斷出v-show不能顯示隱藏多個元素?不知是否
可以這樣理解,望大神告知!所以這種情況下只能用v-if來實現(xiàn).
另外補充,在渲染多個元素時候可以把一個<template>
元素作為包裝元素,并在上面使用v-if進行條件判斷,最終的渲染并不會包含這個元素.同時,v-show
不支持<template>
語法.
相信看了本文案例你已經(jīng)掌握了方法,更多精彩請關(guān)注Gxl網(wǎng)其它相關(guān)文章!
推薦閱讀:
Vue.js提升必知的幾點總結(jié)
vue計算屬性詳解
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com