以前一直以爲v-if和v-else渲染的元素就應該是獨立的,直到前幾天渲染一個自定義的組件,v-if和v-else都引入了,例如
<a-form-item v-if="type===1">
<my-select/>
</a-form-item>
<a-form-item v-else>
<my-select/>
</a-form-item>
我以爲的是切換type會是2次渲染,組件created()也應該是調用2次,然而,只調用了1次,當時不知道原因
今天再看vue文檔時發現:vue 會盡可能高效地渲染元素,通常會複用已有元素而不是從頭開始渲染
也就是說2個模塊的內容使用的是相同的元素,則vue是直接複用,而不是從頭渲染
如果你不想要複用,則在那個組件上添加key屬性就可以了