W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
v-if
/v-else
/v-else-if
的各分支項(xiàng)key
將不再是必須的,因?yàn)楝F(xiàn)在 Vue 會(huì)自動(dòng)生成唯一的key
。key
,那么每個(gè)分支必須使用唯一的 key
。你不能通過故意使用相同的 key
來強(qiáng)制重用分支。<template v-for>
的 key
應(yīng)該設(shè)置在 <template>
標(biāo)簽上 (而不是設(shè)置在它的子節(jié)點(diǎn)上)。
特殊的 key
attribute 被用于提示 Vue 的虛擬 DOM 算法來保持對(duì)節(jié)點(diǎn)身份的持續(xù)跟蹤。這樣 Vue 可以知道何時(shí)能夠重用和修補(bǔ)現(xiàn)有節(jié)點(diǎn),以及何時(shí)需要對(duì)它們重新排序或重新創(chuàng)建。關(guān)于其它更多信息,可以查看以下章節(jié):
Vue 2.x 建議在 v-if
/v-else
/v-else-if
的分支中使用 key
。
<!-- Vue 2.x -->
<div v-if="condition" key="yes">Yes</div>
<div v-else key="no">No</div>
這個(gè)示例在 Vue 3.x 中仍能正常工作。但是我們不再建議在 v-if
/v-else
/v-else-if
的分支中繼續(xù)使用 key
attribute,因?yàn)闆]有為條件分支提供 key
時(shí),也會(huì)自動(dòng)生成唯一的 key
。
<!-- Vue 3.x -->
<div v-if="condition">Yes</div>
<div v-else>No</div>
非兼容變更體現(xiàn)在如果你手動(dòng)提供了 key
,那么每個(gè)分支都必須使用一個(gè)唯一的 key
。因此大多數(shù)情況下都不需要設(shè)置這些 key
。
<!-- Vue 2.x -->
<div v-if="condition" key="a">Yes</div>
<div v-else key="a">No</div>
<!-- Vue 3.x (recommended solution: remove keys) -->
<div v-if="condition">Yes</div>
<div v-else>No</div>
<!-- Vue 3.x (alternate solution: make sure the keys are always unique) -->
<div v-if="condition" key="a">Yes</div>
<div v-else key="b">No</div>
<template v-for>
在 Vue 2.x 中 <template>
標(biāo)簽不能擁有 key
。不過你可以為其每個(gè)子節(jié)點(diǎn)分別設(shè)置 key
。
<!-- Vue 2.x -->
<template v-for="item in list">
<div :key="item.id">...</div>
<span :key="item.id">...</span>
</template>
在 Vue 3.x 中 key
則應(yīng)該被設(shè)置在 <template>
標(biāo)簽上。
<!-- Vue 3.x -->
<template v-for="item in list" :key="item.id">
<div>...</div>
<span>...</span>
</template>
類似地,當(dāng)使用 <template v-for>
時(shí)存在使用 v-if
的子節(jié)點(diǎn),key
應(yīng)改為設(shè)置在 <template>
標(biāo)簽上。
<!-- Vue 2.x -->
<template v-for="item in list">
<div v-if="item.isVisible" :key="item.id">...</div>
<span v-else :key="item.id">...</span>
</template>
<!-- Vue 3.x -->
<template v-for="item in list" :key="item.id">
<div v-if="item.isVisible">...</div>
<span v-else>...</span>
</template>
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: