vue-1 v-if 和v-show的區(qū)別

? ? ? ? 總結:v-show通過元素添加css屬性控制顯示隱藏,v-if則是添加或刪除dom元素。v-if有更高的切換消耗,v-show有更高的初始渲染消耗。在原理分析上。v-show不管初始條件如何元素總會被渲染,v-if實現(xiàn)更復雜,需處理多種條件。使用場景傻姑娘,頻繁切換使用v-show,運行時條件很少改變用v-if。

共同點:

? ? ? ? v-show和v-if在vue中作用效果相同,都能控制元素在頁面是否顯示,用法也相同。當表達式為true時占據(jù)頁面位置,false時不占據(jù)頁面位置

區(qū)別:

? ? ? ?1.控制手段不同,v-show為元素添加css屬性控制顯示與隱藏。v-if則是添加或刪除dom元素;

? ? ? ?2.編譯過程不同:v-if局部編譯/卸載過程,v-show只是基于css切換;

? ? ? ?3.編譯條件不同:v-if是真正條件渲染,v-show由false變?yōu)閠rue時不觸發(fā)組件生命周期。v-if切換會觸發(fā)特定鉤子,觸發(fā)組件的beforeCreate、create、beforeMount、mounted鉤子,由true變?yōu)閒alse的時候觸發(fā)組件的beforeDestory、destoryed方法。

? ? ? ?4.性能消耗不同:v-if切換消耗高,v-show初始渲染消耗高

原理分析:

????????v-show不管初始條件如何,元素總會被渲染。通過設置dislay屬性實現(xiàn);

????????v-if實現(xiàn)比較復雜,需處理else、else if等條件,通過表達式的值決定是否生成dom

使用場景:

????????如果需要非常頻繁的切換,則使用v-show較好;如果在運行時條件很少改變,則使用v-if較好


From:https://vue3js.cn/interview/vue/show_if.html#%E4%B8%89%E3%80%81v-show%E4%B8%8Ev-if%E5%8E%9F%E7%90%86%E5%88%86%E6%9E%90

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容