v-if是根據(jù)后面數(shù)據(jù)的真假,來判斷DOM的添加刪除等操作,是一個局部編譯/卸載的過程,切換過程中合適地銷毀和重建內(nèi)部的事件監(jiān)聽和子組件。
v-show只是在修改元素的css樣式(通過修改css屬性display來控制顯示與隱藏)不管初始條件是否為真,DOM都會被渲染。
即:
v-if和v-show都是用來控制元素的渲染
v-if判斷是否加載,可以減輕服務(wù)器的壓力,在需要時加載,會有更高的切換開銷
v-show調(diào)整DOM元素的CSS的dispaly屬性,可以使客戶端操作更加流暢,但有更高的初始渲染開銷
所以如果需要非常頻繁地切換,則使用 v-show 較好,如果在運行時條件很少改變,則使用 v-if更適合。
(另外v-show不支持v-else和template元素)