久久精品五月,日韩不卡视频在线观看,国产精品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综合
午夜亚洲福利| 精品国产网站| 午夜久久美女| 日韩午夜av| 亚洲综合精品四区| 久久av一区| 亚洲高清激情| 欧美日韩高清| 国产亚洲精品自拍| 亚洲91在线| 国产精品久一| jizzjizz中国精品麻豆| 在线看片福利| 久久久五月天| 美日韩精品视频| 日韩av中文字幕一区二区 | 久久亚洲黄色| 日韩一区电影| 狠狠爱www人成狠狠爱综合网| 欧美一级专区| 中文一区一区三区免费在线观| 综合欧美精品| 久久成人福利| 日韩国产在线| 亚洲深夜影院| 国产色噜噜噜91在线精品| 精品亚洲a∨| 今天的高清视频免费播放成人| 美女久久一区| 国产精品密蕾丝视频下载| 四虎8848精品成人免费网站| 久久影视一区| 四虎国产精品免费久久| 欧美a一区二区| 久久婷婷丁香| 天堂成人国产精品一区| 久久国际精品| 久久久五月天| 日本中文字幕一区二区| 精品视频在线你懂得| 午夜精品婷婷| 国产福利亚洲| 亚洲一级网站| 国产毛片精品| 蜜臀av免费一区二区三区| 少妇高潮一区二区三区99| 国内揄拍国内精品久久| 国产精品美女久久久浪潮软件| 国产精品欧美大片| 欧美日韩黑人| 清纯唯美亚洲综合一区| 日本精品在线中文字幕| 亚洲开心激情| 日韩一区自拍| 91精品国产自产精品男人的天堂| 欧美天堂视频| 日本国产欧美| 亚洲小说欧美另类婷婷| 欧美一级二区| 欧美精品一二| 麻豆国产精品777777在线| 久久香蕉精品| xxxxx性欧美特大| 日韩av一区二| 婷婷精品进入| 国产精品18| 亚洲资源在线| 久久精品欧美一区| 麻豆国产精品一区二区三区| 老牛影视一区二区三区| 97精品一区二区| 日韩不卡在线观看日韩不卡视频| 亚洲网站视频| 狠狠久久伊人| 日韩精品成人| 宅男噜噜噜66国产日韩在线观看| 国产成人精品一区二区三区视频 | 中文字幕日本一区二区| 欧美香蕉视频| 国产高清视频一区二区| 亚洲精品伦理| 亚洲激情国产| 国产精品字幕| 国产成人精品三级高清久久91| 日韩国产精品久久久| 99日韩精品| 日韩成人高清| 精品国产成人| 欧美a级一区二区| 日韩福利视频网| 日本欧美在线看| 亚洲激情婷婷| 99精品视频在线观看免费播放| 久久这里只有| 国产乱码精品| 日本久久一区| 亚洲欧洲美洲国产香蕉| 在线亚洲观看| 91久久中文| 亚洲精品电影| 欧美精选一区二区三区| 成人日韩在线| 福利一区二区| 精品一区二区三区中文字幕视频 | 国产日韩亚洲欧美精品| 亚州av日韩av| 综合视频一区| 蜜臀av性久久久久蜜臀aⅴ四虎| 香蕉精品视频在线观看| 婷婷激情久久| 欧美成人基地| 久久三级视频| 亚洲五月婷婷| 91精品二区| 一区二区自拍| 99在线精品免费视频九九视| 亚洲黄页一区| 香蕉精品999视频一区二区| 99免费精品| 精品亚洲美女网站| 99精品在线| 欧美日韩国产在线观看网站| 免费观看不卡av| 一本色道精品久久一区二区三区| 欧美日韩国产高清| 亚洲在线网站| 自拍自偷一区二区三区| 亚洲精选成人| 欧美一级网址| 国产精品蜜月aⅴ在线| 免费在线亚洲| 成人国产精选| 91精品一区二区三区综合| 成人在线视频免费看| 日本久久精品| 久久人人88| 91久久黄色| 伊人久久大香线蕉av超碰演员| 国产综合婷婷| 国产亚洲网站| 日本va欧美va欧美va精品| 911亚洲精品| 国产精品二区影院| 精品美女在线视频| 国产91欧美| 99精品视频精品精品视频| 99日韩精品| 日韩一区二区三区精品视频第3页| 男女激情视频一区| 日韩精品一区二区三区中文在线 | 亚洲激情黄色| 中文字幕成人| 精品一区不卡| 日韩国产欧美一区二区| 亚洲激情久久| 日本一不卡视频| 久久亚洲精品中文字幕| 精品丝袜在线| 美女尤物久久精品| 欧美日韩伊人| 日韩欧美1区| 国产亚洲一区在线| 中文字幕成人| 久久影视三级福利片| 久久久精品日韩| 鲁大师成人一区二区三区| 日本综合精品一区| 福利一区二区| 爽爽淫人综合网网站| 久久av超碰| 激情六月综合| 日韩av资源网| 日韩在线观看一区| 亚洲精品在线a| 丰满少妇一区| 性色一区二区| 精品亚洲自拍| 亚洲va中文在线播放免费| 日本欧美在线看| 欧美国产小视频| 视频在线在亚洲| 精品国产一区二| 国产亚洲精品自拍| 精品久久一区| 亚洲精品四区| 日本综合字幕| 欧美日韩亚洲一区二区三区在线| 日韩深夜视频| 国产探花一区| 亚洲一区二区三区高清不卡| 麻豆一区在线| 亚洲丝袜美腿一区| 久久久亚洲欧洲日产| 丝袜亚洲精品中文字幕一区| 亚洲美女久久精品| 日韩美女国产精品| 午夜国产精品视频免费体验区| 久久精品不卡| 国产欧美在线观看免费| 91精品国产成人观看|