1. 程式人生 > >vue中v-if和v-show的區別

vue中v-if和v-show的區別

相同點

在組建掛載時判斷DOM節點是否要顯示

不同點​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​

1.實現方式

1.v-if是根據後面資料的真假值判斷直接從Dom樹上刪除或重建元素節點

2.v-show只是在修改元素的css樣式,也就是display的屬性值,元素始終在Dom樹上

2.編譯過程

1.v-if切換有一個區域性編譯/解除安裝的過程,切換過程中合適地銷燬和重建內部的事件監聽和子元件

2.v-show只是簡單的基於css切換display的值為none或者block

3.編譯條件

1.v-if是惰性的,如果初始條件為假,則什麼也不做;只有在條件第一次變為真時才開始區域性編譯

2.v-show是在任何條件下(首次條件是否為真)都被編譯,然後被快取,而且DOM元素始終被保留

4.效能評估

1.v-if有更高的切換消耗,不適合做頻繁的切換

2.v-show有更高的初始渲染消耗,適合做頻繁的額切換