您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)Vue中v-for循環(huán)key屬性注意事項(xiàng)有哪些,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
當(dāng)Vue用 v-for 正在更新已渲染過(guò)的元素列表是,它默認(rèn)用“就地復(fù)用”策略。如果數(shù)據(jù)項(xiàng)的順序被改變,Vue將不是移動(dòng)DOM元素來(lái)匹配數(shù)據(jù)項(xiàng)的改變,而是簡(jiǎn)單復(fù)用此處每個(gè)元素,并且確保它在特定索引下顯示已被渲染過(guò)的每個(gè)元素。
為了給Vue一個(gè)提示,以便它能跟蹤每個(gè)節(jié)點(diǎn)的身份,從而重用和重新排序現(xiàn)有元素,你需要為每項(xiàng)提供一個(gè)唯一 key 屬性。key屬性的類型只能為 string或者number類型。
在下面這個(gè)例子中,如果不給 p 元素綁定key,我先選中第一個(gè),
然后輸入ID和Name,點(diǎn)擊添加按鈕之后,就會(huì)出現(xiàn)如下這種情況,剛添加的元素被選中。如果綁定了key屬性,則不會(huì)出現(xiàn)這種情況。
完整的代碼:
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> <div id='app'> <!--v-for循環(huán)普通數(shù)組--> <div> <label>ID:<input type="text" v-model="id"></label> <label>Name:<input type="text" v-model="name"></label> <input type="button" value="添加" @click="add" /> </div> <!--注意:v-for循環(huán)的時(shí)候,key屬性只能使用number或string --> <!--注意:key使用的時(shí)候,必須使用v-bind綁定屬性的形式,指定key的值 --> <!-- 在組件中,使用 v-for循環(huán)的時(shí)候,或者在一些特殊情況中,如果v-for有問(wèn)題, 必須在使用v-for的同時(shí),指定唯一的 字符串/數(shù)字 類型:key 值--> <p v-for="item in list" :key="item.id"> <input type="checkbox"/> {{item.id}}--{{item.name}} </p> </div> </body> <script src="vue.min.js"></script> <script> var vm = new Vue({ el:'#app', data:{ id:"", name:"", list:[ {id:1, name:'李斯'}, {id:2, name:'嬴政'}, {id:3, name:'趙高'}, {id:4, name:'韓非'}, {id:5, name:'荀子'}, ], }, methods:{ add(){ this.list.unshift({id:this.id,name:this.name}); } } }); </script> </html>
關(guān)于“Vue中v-for循環(huán)key屬性注意事項(xiàng)有哪些”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。