vue中v if和v show的區別

2021-08-21 07:47:26 字數 644 閱讀 1396

相同點:v-if與v-show都可以動態控制dom元素顯示隱藏

不同點:v-if顯示隱藏是將dom元素整個新增或刪除,而v-show隱藏則是為該元素新增css--display:none,dom元素還在。

需要注意的是,當乙個元素預設在css中加了display:none屬性,這時通過if-show修改為true是無法讓元素顯示的。原因是顯示隱藏切換,只是會修改

element style為display:""或者display:none,並不會覆蓋掉或修改已存在的css屬性。

1.手段:v-if是動態的向dom樹內新增或者刪除dom元素;v-show是通過設定dom元素的display樣式屬性控制顯隱;

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

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

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

5.使用場景:v-if適合運營條件不大可能改變;v-show適合頻繁切換。

vue中v if和v show的區別

v if 是根據條件來判斷是否要渲染該元素。而 v show是已經渲染了該元素用css來決定他顯不顯示。看起來似乎是v if比較好一點。但是作為元素間的切換的話。v if有較高的切換開銷。所以當如果你的頁面元素要經常切換的話用v show會比較好。當不需要經常切換的時候,這種情況就用v if比較好。...

vue中v show和v if的區別

v show seen hello,you see me div v if seen hello,you see me div var seen true var seen false script 上述 中v show和v if都可以實現相同的功能,但是v show在任何情況下,都會被渲染並且保留...

vue中v if和v show的區別

在組建掛載時判斷dom節點是否要顯示 1.v if是根據後面資料的真假值判斷直接從dom樹上刪除或重建元素節點 2.v show只是在修改元素的css樣式,也就是display的屬性值,元素始終在dom樹上 1.v if切換有乙個區域性編譯 解除安裝的過程,切換過程中合適地銷毀和重建內部的事件監聽和...