簡述vue中v if和v show的區別及使用場景

2022-06-23 21:03:08 字數 696 閱讀 8526

vue中的 v-if 和 v-show 二者都可以動態的控制元素的隱藏和顯示,但是他們控制的原理是不同的

v-if

v-if 控制元素顯示或隱藏是把dom元素整個的渲染或者刪除,如果刪除,也就是頁面中不存在這個dom元素,以此達到隱藏的效果;

所以v-if在每次切換的時候都會重新建立或者銷毀元素,有較高的切換效能消耗;

而且v-if是惰性的,如果在初始渲染時條件為假,那就什麼也不做,直到條件第一次變為真時,需要渲染時才會開始渲染條件塊

v-show

v-show則是無論你的初始條件是什麼,元素都會被渲染,就是dom元素始終是存在的,v-show只是通過控制css中的display屬性來控制他的顯示或隱藏;

它擁有比較高的初始渲染消耗;

使用場景

如果元素需要進行比較頻繁的切換的話,推薦使用v-show,

如果很少用到切換,或者元素可能永遠都不會顯示出來的話,就使用v-if

注意:如果已經在css中明確寫出display : none 的話,在v-if中就算設定v-if為true也是不能讓元素顯示的,因為他沒辦法覆蓋或者修改掉css裡面的

display : none屬性,他只是會修改element style為display:""或者display:none

vue中v if和v show的區別

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

vue中v if和v show的區別

相同點 v if與v show都可以動態控制dom元素顯示隱藏 不同點 v if顯示隱藏是將dom元素整個新增或刪除,而v show隱藏則是為該元素新增css display none,dom元素還在。需要注意的是,當乙個元素預設在css中加了display none屬性,這時通過if show修改...

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在任何情況下,都會被渲染並且保留...