v if與v show的用法區別

2021-10-05 07:27:13 字數 1055 閱讀 9386

區別

1.手段:v-if是通過控制dom節點的存在與否來控制元素的顯隱;v-show是通過設定dom元素的display樣式,block為顯示,none為隱藏;

2.編譯過程:v-if切換有乙個區域性編譯/解除安裝的過程,切換過程中合適地銷毀和重建內部的事件監聽和子元件;v-show只是簡單的基於css切換;

3.編譯條件:v-if是惰性的,如果初始條件為假,則什麼也不做;只有在條件第一次變為真時才開始區域性編譯(編譯被快取?編譯被快取後,然後再切換的時候進行區域性解除安裝); v-show是在任何條件下(首次條件是否為真)都被編譯,然後被快取,而且dom元素保留;

4.效能消耗:v-if有更高的切換消耗;v-show有更高的初始渲染消耗;

解釋

v-if 是「真正」的條件渲染,因為它會確保在切換過程中條件塊內的事件***和子元件適當地被銷毀和重建。

v-if 也是惰性的:如果在初始渲染時條件為假,則什麼也不做——直到條件第一次變為真時,才會開始渲染條件塊。

相比之下,v-show 就簡單得多——不管初始條件是什麼,元素總是會被渲染,並且只是簡單地基於 css 進行切換。

使用場景

如果需要非常頻繁地切換,則使用 v-show 較好;如果在執行時條件很少改變,則使用 v-if 較好。

(1)對於管理系統的許可權列表的展示,這裡可以使用v-if來渲染,如果使用到v-show,對於使用者沒有的許可權,在網頁的原始碼中,仍然能夠顯示出該許可權,如果用v-if,網頁的原始碼中就不會顯示出該許可權。(在前後臺分離情況下,後台不負責渲染頁面的場景。)

(2)對於前台頁面的資料展示,這裡推薦使用v-show,這樣可以減少開發中不必要的麻煩。

總結

v-if和v-show都是用來控制元素的渲染。v-if判斷是否載入,可以減輕伺服器的壓力,在需要時載入,但有更高的切換開銷;v-show調整dom元素的css的dispaly屬性,可以使客戶端操作更加流暢,但有更高的初始渲染開銷。如果需要非常頻繁地切換,則使用 v-show 較好;如果在執行時條件很少改變,則使用 v-if 較好。

v if與v show的區別?

在切換v if塊時,vue.js 有乙個區域性編譯 解除安裝過程,因為v if之中的模板也可能包括資料繫結或子元件。v if是真實的條件渲染,因為它會確保條件塊在切換當中合適地銷毀與重建條件塊內的事件 和子元件。v if也是惰性的 如果在初始渲染時條件為假,則什麼也不做 在條件第一次變為真時才開始區...

v show 與 v if 的區別

1.v if 是真正的條件渲染,預設條件為false時元素不渲染,預設條件為true時元素渲染。條件變為false時元素會銷毀,條件變為true時元素會重新建立。而 v show 只是簡單的去控制元素的css的display屬性。2.v show 有更高的初始渲染開銷 因為不管預設條件為真還是假,都...

v if與v show的區別

v if指令與v show指令都可以根據值動態控制dom元素顯示隱藏,v if和v show屬於vue的內部常用的指令,指令的職責是當表示式的值改變時把某些特殊的行為應用到dom上。v if指令用於條件性地渲染一塊內容,這塊內容只會在指令的表示式返回truthy值的時候被渲染。show hide v...