久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合

站長資訊網
最全最豐富的資訊網站

vue中為什么v-for指令的 key 值不能是 index?

vue中使用v-for時為什么不能用index作為key?下面本篇文章給大家介紹一下 v-for 的 key 值不能是 index 的原因,希望對大家有所幫助!

vue中為什么v-for指令的 key 值不能是 index?

為什么 v-for 的 key 值不能是 index?

很多人一說起這道老生常談的面試題,馬上就開始滔滔不絕地講述 虛擬DOMdiff算法 了。

講這些沒問題,但如果是我,一定先講 v-for 的 key 值寫成 index 會造成的問題,再講原理。

曾經我寫 v-for, key 值永遠都是 index,直到有一天,我這么寫造成了線上bug

來看一下我的線上bug演示吧:

父組件代碼 <Child   v-for="(item, index) in list"   :key="index"   :count="item.count"   :name="item.name"   @delete="handleDelete(index)" />  list: [     {       count: 1,       name: '第1個元素'     },     {       count: 2,       name: '第2個元素'     },     {       count: 3,       name: '第3個元素'     }   ]    handleDelete(index) {   this.list.splice(index, 1) },

vue中為什么v-for指令的 key 值不能是 index?

如代碼和gif演示,點擊刪除第2個元素,看上去似乎一切正常。

等一下,第三個元素的count值居然變成了2,wtf!!!

驚得我又去看了遍子組件的代碼

子組件 <div>   <span>{{ name }}</span>   count值為:{{ innerCount }}   <button @click="$emit('delete')">-</button> </div>  props: {   count: {     type: Number,     default: 0   },   name: {     type: String,     default: ''   } }, data() {   return {     innerCount: this.count   }  }

感覺也沒什么不對的啊。

不信邪,我又多創建了點元素來刪除,還試了下排序:

vue中為什么v-for指令的 key 值不能是 index?

果然,不光刪除元素有問題,排序也有問題。

把 key 值改成 item.name 再試一下。

<Child   v-for="(item, index) in list"   :key="item.name"   :count="item.count"   :name="item.name"   @delete="handleDelete(index)" />

vue中為什么v-for指令的 key 值不能是 index?

正常了。

這樣看來,在 v-for 里把 key 值寫成 index,非常危險啊。

在查閱了 vue 官方文檔之后,我終于明白了原因:

當 Vue 正在更新使用 v-for 渲染的元素列表時,它默認使用“就地更新”的策略。如果數據項的順序被改變,Vue 將不會移動 DOM 元素來匹配數據項的順序,而是就地更新每個元素,并且確保它們在每個索引位置正確渲染。

這個默認的模式是高效的,但是只適用于不依賴子組件狀態或臨時 DOM 狀態 (例如:表單輸入值) 的列表渲染輸出

不依賴子組件狀態

子組件里有一行很關鍵的代碼

data() {   return {     innerCount: this.count   }  }

子組件內部定義了 innerCount,這樣子組件就有了自己的狀態,按照官方文檔的說明,這種情況下不能把 index 作為 key 值。

臨時 DOM 狀態

<div v-for="(item, index) in list1" :key="index">   <input type="text" />   <button @click="delClick(index)">刪除</button> </div>

vue中為什么v-for指令的 key 值不能是 index?

刪除了第2項,但是第3項在表單中的3變成了2,跟上面依賴子組件狀態的例子是一樣的。

總結

寫列表渲染時, 依賴子組件狀態或臨時 DOM 狀態的情況,如果有 刪除、增加、排序這樣的功能,不要把 index 作為 key。

事實上,寫列表渲染時,永遠不要把 index 做為 key,key 一定要是唯一標識。

至于原因,就要理解 diff 算法之后才能明白了。

待解答問題:

  • key 為什么不能寫成隨機數或時間戳?
  • key 為什么要是唯一標識?

別著急,立了個寫100個 vue 問題相關文章的 flag 呢,后面的文章再慢慢分析。

希望我的 vue 系列文章能對前端路上的你有幫助~

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合
亚洲精品在线国产| 欧美黄色一区| 一区二区三区四区日本视频| 国产精品调教视频| 久久国产人妖系列| 日本aⅴ免费视频一区二区三区| 久久一二三区| 久久亚洲国产精品一区二区| 亚洲一区免费| 亚洲一区二区av| 亚洲一级大片| 97se亚洲| 欧美aa在线视频| 国产传媒在线观看| **爰片久久毛片| 亚洲午夜电影| 日韩有吗在线观看| 深夜日韩欧美| 国产精品1区| 久久电影tv| 蜜臀va亚洲va欧美va天堂| 亚洲精品日本| av一区在线| 一区在线免费观看| 国产精品羞羞答答在线观看| 偷拍欧美精品| 国产精品1区在线| 国产精品白丝一区二区三区| 国产精品第一| 久久中文字幕一区二区三区| 国产精品magnet| 国产日韩一区| 美女少妇全过程你懂的久久| 日韩视频在线一区二区三区| 不卡中文字幕| 亚洲精品乱码| 国产亚洲观看| 最近高清中文在线字幕在线观看1| 日韩精品水蜜桃| 亚洲深爱激情| **爰片久久毛片| 色乱码一区二区三区网站| 日韩精品电影| 久久国产人妖系列| 日韩毛片视频| 蘑菇福利视频一区播放| 久久99蜜桃| 亚洲专区视频| 婷婷国产精品| 日韩一区二区三区精品视频第3页 日韩一区二区三区免费视频 | 国产综合婷婷| 亚洲另类av| 国产精品密蕾丝视频下载| 欧美成人基地| 国产图片一区| 午夜av一区| 国产欧美久久一区二区三区| 欧美综合另类| 国产欧美一区二区三区精品观看| 韩国精品主播一区二区在线观看 | 日韩美女精品| 九色porny丨国产首页在线| 亚洲一区二区三区四区五区午夜| 国产精品久久免费视频| 五月天久久网站| 久久字幕精品一区| 巨乳诱惑日韩免费av| 加勒比视频一区| 蜜桃一区二区三区在线| 五月天av在线| 欧美一区二区三区久久精品| 婷婷中文字幕一区| 国产成人免费| 日本欧美韩国一区三区| 国内精品福利| 韩国一区二区三区视频| 综合激情五月婷婷| 欧美日韩免费观看视频| 中文在线日韩| 一区二区电影| 久久99久久人婷婷精品综合| 日韩一区电影| 亚洲综合专区| 久久青青视频| 蜜臀久久99精品久久久久久9 | 一区在线免费观看| 欧美日韩夜夜| 国产一在线精品一区在线观看| 日韩美女国产精品| 日韩精品一卡| 日韩理论片av| 美日韩一区二区三区| 韩日一区二区| 一级成人国产| 亚洲18在线| 免费在线成人| 日韩综合一区二区| 国产精品日韩久久久| 秋霞国产精品| 久久99久久人婷婷精品综合| 亚洲人成亚洲精品| 午夜在线播放视频欧美| 免费av一区二区三区四区| 91精品国产自产在线丝袜啪| 人在线成免费视频| 国产激情欧美| 激情欧美亚洲| 国产日本久久| 亚洲日本欧美| 1024精品久久久久久久久| 日韩欧美精品| 欧美精品1区| 91成人小视频| 综合国产在线| 久久香蕉精品| 石原莉奈在线亚洲三区| 91九色精品| 午夜欧美在线| 免费欧美一区| 欧美日韩国产传媒| 亚洲国产成人精品女人| 群体交乱之放荡娇妻一区二区| 红杏一区二区三区| 成人影视亚洲图片在线| 成人精品高清在线视频| 丰满少妇一区| av综合电影网站| 最新中文字幕在线播放| 日韩欧美一区二区三区免费看| av综合电影网站| 999久久久免费精品国产| 国精品一区二区| 亚洲一区国产| 日本亚洲最大的色成网站www | 久久久精品区| 国产一区二区三区91| 国产成人精品一区二区三区免费 | 精品亚洲成人| 视频在线不卡免费观看| 日韩国产一区| 国产一区二区中文| 亚洲欧美高清| 亚洲一区二区免费在线观看| 亚洲精品免费观看| 99久久激情| 老牛影视一区二区三区| 青青伊人久久| 成人欧美一区二区三区的电影| 蜜桃视频欧美| 国产精品手机在线播放| 国产91精品对白在线播放| 日本亚洲三级在线| 欧美日韩视频免费观看| 日韩成人在线看| 在线视频精品| 日韩中文首页| 国产精品久久久久久久久久白浆| 久久久久久久欧美精品| 久久国产日韩欧美精品| 欧美精品日日操| 激情综合网站| 婷婷久久免费视频| 欧美精品第一区| 99精品一区| 亚洲日产国产精品| 国产极品模特精品一二| 久久久久网站| 欧美亚洲国产激情| 国产麻豆精品久久| 亚洲欧洲免费| 99精品在线免费在线观看| 欧美国产三级| 亚洲欧美成人综合| 久久激情婷婷| 福利视频一区| 国产精品va| 黄色aa久久| 日韩精品三区四区| 福利一区二区免费视频| 99国产一区| 国产精品毛片视频| 极品日韩av| 天堂久久一区| 日韩欧美自拍| 日本91福利区| 亚洲国产专区校园欧美| 久久狠狠久久| 国产精品17p| 91亚洲一区| 久久亚洲成人| 久久丁香四色| 日韩精品视频在线看| 精品午夜av| 久久国产精品美女| 亚洲激情久久| 国产精品3区| 久色成人在线| 久久影院资源站| 老色鬼久久亚洲一区二区| 久久影院资源站|