v-if 和 v-show的區別


簡單來說,v-if 的初始化較快,但切換代價高;v-show 初始化慢,但切換成本低

1.共同點

都是動態顯示DOM元素

2.區別

(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適合頻繁切換。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM