當Vue用 v-for 正在更新已渲染過的元素列表是,它默認用“就地復用”策略。如果數據項的順序被改變,Vue將不是移動DOM元素來匹配數據項的改變,而是簡單復用此處每個元素,并且確保它在特定索引下顯示已被渲染過的每個元素。
為了給Vue一個提示,以便它能跟蹤每個節(jié)點的身份,從而重用和重新排序現有元素,你需要為每項提供一個唯一 key 屬性。key屬性的類型只能為 string或者number類型。
在下面這個例子中,如果不給 p 元素綁定key,我先選中第一個,
然后輸入ID和Name,點擊添加按鈕之后,就會出現如下這種情況,剛添加的元素被選中。如果綁定了key屬性,則不會出現這種情況。
完整的代碼:
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> <div id='app'> <!--v-for循環(huán)普通數組--> <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)的時候,key屬性只能使用number或string --> <!--注意:key使用的時候,必須使用v-bind綁定屬性的形式,指定key的值 --> <!-- 在組件中,使用 v-for循環(huán)的時候,或者在一些特殊情況中,如果v-for有問題, 必須在使用v-for的同時,指定唯一的 字符串/數字 類型: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>
總結
以上所述是小編給大家介紹的Vue中的v-for循環(huán)key屬性注意事項小結,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com