溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Vue中v-for循環(huán)key屬性注意事項(xiàng)有哪些

發(fā)布時(shí)間:2021-08-13 10:33:57 來(lái)源:億速云 閱讀:175 作者:小新 欄目:web開(kāi)發(fā)

這篇文章將為大家詳細(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è),

Vue中v-for循環(huán)key屬性注意事項(xiàng)有哪些

然后輸入ID和Name,點(diǎn)擊添加按鈕之后,就會(huì)出現(xiàn)如下這種情況,剛添加的元素被選中。如果綁定了key屬性,則不會(huì)出現(xiàn)這種情況。

Vue中v-for循環(huán)key屬性注意事項(xiàng)有哪些

完整的代碼:

<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)把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI