在頁面中使用了v-if做了乙個tab框,點選不同的tab框,並載入不同的內容,
由於各tab框對應的內容是4到5張統計圖,載入的資料量比較大,發現後台請求響應
返回的時間很快,在100ms以內,但點選tab框切換載入內容時,會有乙個明顯的卡頓感。
v-if:根據表示式的值在dom中生成或者銷毀乙個元素,值是false就會在dom中銷毀,反之會渲染相應元素到dom中
支援加在標籤上
v-show是根據表示式的值來顯示或者隱藏元素,根據的是display的值進行控制顯隱
不支援加在標籤上
在v-if切換的時候,vue內部有乙個區域性編譯/解除安裝的過程,需要消耗較多時間。因為v-if可能是資料繫結或者子元件。
v-if是真真正正的條件渲染;然而他是惰性的,在初始值是false的時候,他就什麼都不足,在為真的時候才會開始區域性變異
相比之下v-show則是更簡單一下,僅僅是css上的切換
所以,v-if有更高的切換消耗,而v-show有更高的初始渲染消耗;
因此,如果是頻繁切換,就用v-show;在條件很難改變,比如某個模組在使用者a出顯示,就用v-if
據上,我將tab頁切換控制顯示的v-if改為v-show後,頁面會很快的渲染和響應,不再出現短暫的停頓。
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在任何情況下,都會被渲染並且保留...