日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

vue中使用v-for時為什么不能用index作為key

瀏覽:185日期:2023-01-28 15:41:03

結論:

更新DOM的時候會出現性能問題 會發生一些狀態bug React 中的 key 也是如此 如果已經了解 為什么要用key,可以通過目錄直接跳到下一節。

為什么要用key?

Vue 和 React 都實現了一套虛擬DOM,使我們可以不直接操作DOM元素,只操作數據便可以重新渲染頁面。而隱藏在背后的原理便是其高效的Diff算法。

Vue 和 React 的虛擬DOM的Diff算法大致相同,其核心是基于兩個簡單的假設:

兩個相同的組件產生類似的DOM結構,不同的組件產生不同的DOM結構。 同一層級的一組節點,他們可以通過唯一的id進行區分。

基于以上這兩點假設,使得虛擬DOM的Diff算法的復雜度從O(n^3)降到了O(n)。

用一張圖簡單說明一下:

vue中使用v-for時為什么不能用index作為key

當頁面的數據發生變化時,Diff算法只會比較同一層級的節點:

如果節點類型不同,直接干掉前面的節點,再創建并插入新的節點。

如果節點類型相同,則會重新設置該節點的屬性,從而實現節點的更新。

舉個栗子:

vue中使用v-for時為什么不能用index作為key

我們希望可以在B和C之間加一個F,Diff算法默認執行起來是這樣的:

vue中使用v-for時為什么不能用index作為key

即把C更新成F,D更新成C,E更新成D,最后再插入E,這樣效率不高,且性能不夠好。

但是,如果使用key來給每個節點做一個唯一標識,Diff算法就可以正確的識別此節點,找到正確的位置區插入新的節點。

vue中使用v-for時為什么不能用index作為key

總而言之,key的作用主要是為了高效的更新虛擬DOM 。另外vue中在使用相同標簽名元素的過渡切換時,也會使用到key屬性,其目的也是為了讓vue可以區分它們,否則vue只會替換其內部屬性而不會觸發過渡效果。

這里,也建議盡可能在使用 v-for 時提供 key attribute,除非遍歷輸出的 DOM 內容非常簡單。

為什么不能用index作為key?

舉個栗子:

<template> <div v-for='(item, index) in list' :key='index' >{{item.name}}</div></template>

const list = [ { id: 1, name: 'Person1' }, { id: 2, name: 'Person2' }, { id: 3, name: 'Person3' }, { id:4, name:'Person4' }];

此時,刪除 “Person4” 是正常的,但是如果我刪除 “Person2” 就會出現問題。

刪除前

key id index name 0 1 0 Person1 1 2 1 Person2 2 3 2 Person3 3 4 3 Person4

刪除后

key id index name 0 1 0 Person1 1 3 1 Person3 2 4 2 Person4

這個時候,除了 Person1 之外,剩下的 Person3、Person4,因為被發現與相應 key 的綁定關系有變化,所以被重新渲染,這會影響性能。如果此時 list 的 item 是 select 的選項,其中 Person3 是選中的,這個時候 Person2 被刪除了,用 index 作為 key 就會變成是 Person4 選中的了,這就產生了bug。

如果使用唯一id作為key,刪除 Person2 后,剩下的元素因為與 key 的關系沒有發生變化,都不會被重新渲染,從而達到提升性能的目的。此時,list 的 item 作為 select 的選項,也不會出現上面所描述的bug。

到此這篇關于vue中使用v-for時為什么不能用index作為key的文章就介紹到這了,更多相關vue v-for不能用index作為key內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Vue
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
久久九九精品| 亚洲欧美高清| 欧美国产美女| 精品久久视频| 成人av三级| 美日韩精品视频| 亚洲欧美一区在线| 中文字幕视频精品一区二区三区| 亚洲啊v在线免费视频| 国产精品黄网站| 国产麻豆一区| 日韩毛片视频| 亚洲伦乱视频| 日本91福利区| 91亚洲自偷观看高清| 国产一区二区三区四区五区| 西西人体一区二区| 另类国产ts人妖高潮视频| 免费日韩一区二区| 亚洲一级大片| 国产精品视频一区视频二区| 国产精品一区二区三区美女 | 免费视频最近日韩| 麻豆91在线播放| 婷婷精品进入| 亚洲一区日韩| 国产粉嫩在线观看| 国产精品99一区二区三| 久久成人一区| 亚欧成人精品| 国产一区日韩| 亚洲激情av| 国产aa精品| 香蕉成人av| 免费看黄色91| 亚洲精品字幕| 久久精品三级| 久久久久国产| 日韩在线观看一区二区三区| 久久久久久久久99精品大| 亚洲国产专区校园欧美| 精品五月天堂| 欧美午夜精彩| 日本久久一区| 中文字幕人成乱码在线观看 | 精品中文在线| 狂野欧美性猛交xxxx| 久久不见久久见免费视频7| 亚洲高清影视| 麻豆精品一区二区综合av| 亚洲资源av| 久久久噜噜噜| 精品少妇av| 天堂俺去俺来也www久久婷婷| 久久一区二区三区电影| 精品欧美视频| 久久激情五月婷婷| 欧美日韩在线精品一区二区三区激情综合| 色婷婷综合网| 国产亚洲高清一区| 日韩中文字幕不卡| 亚洲电影有码| 精品视频一区二区三区四区五区| 亚洲免费专区| 香蕉国产精品| 欧洲在线一区| 高清av一区| 国产精品极品在线观看| 日韩高清在线不卡| 亚洲深深色噜噜狠狠爱网站| 女同性一区二区三区人了人一| 国产精品原创| 国产精品久久久久久久免费观看| 国产亚洲观看| 欧美精品国产白浆久久久久| 日韩一区欧美二区| 在线亚洲自拍| 99国产精品视频免费观看一公开| 久久一区二区三区电影| 亚洲精品成人图区| 国产精品成人a在线观看| 国产精品网站在线看| 国产亚洲字幕| 国产精品第一| 国产精品久久久一区二区| 国产亚洲精品美女久久久久久久久久| 亚洲精品动态| 日韩av午夜在线观看| 亚洲综合五月| 亚洲午夜久久| 亚洲精品麻豆| 日韩国产欧美三级| 日韩和欧美一区二区三区| 亚洲一二av| 亚洲18在线| 欧美日韩午夜| 国产精品久久国产愉拍| 精品亚洲免a| 欧美少妇精品| 秋霞影院一区二区三区 | av一区二区高清| 蜜桃视频欧美| 欧美日韩国产欧| 香蕉久久久久久久av网站| 婷婷精品进入| 欧美中文字幕| 亚洲精品在线二区| 欧美久久亚洲| 免费一级欧美片在线观看网站| 成人台湾亚洲精品一区二区| 国产精品成人a在线观看| 亚洲人成在线网站| 欧美一区二区三区高清视频| 午夜欧美视频| 亚洲人www| 国产欧美日韩影院| 韩日一区二区| 久久精品青草| 国产色综合网| 日韩欧美中文字幕一区二区三区| 日韩av在线免费观看不卡| 国产日韩欧美一区二区三区 | 国产一区 二区| 久久中文字幕一区二区三区| 福利一区和二区| 日韩一区二区三区免费| 亚洲欧美综合| 日韩精品视频中文字幕| 国产精品香蕉| 日本精品在线中文字幕| 美女国产精品| 国产精品欧美三级在线观看| 国产不卡精品| 成人av动漫在线观看| 天堂成人免费av电影一区| 91av一区| 免费看av不卡| 久久成人国产| 久久久久久亚洲精品美女| 久久久成人网| 中文字幕日韩亚洲| 精品亚洲自拍| 一区在线免费| 久久激情综合网| 啪啪国产精品| 日本电影久久久| 日韩免费看片| 一区二区电影在线观看| 国产精品视频一区二区三区 | 国产一区二区三区四区二区| 欧美另类综合| 国产精品3区| 亚洲大片在线| 欧美中文高清| 久久久久久美女精品| 亚州av日韩av| 三上悠亚国产精品一区二区三区| 免费看精品久久片| 老司机精品视频网| 老牛国产精品一区的观看方式| 麻豆国产欧美一区二区三区| 午夜视频精品| 精品国产乱码| 三级在线观看一区二区| 久久久久伊人| 伊人久久一区| 日本不良网站在线观看| 四虎成人精品一区二区免费网站| 五月激情久久| 奇米色欧美一区二区三区| 色88888久久久久久影院| 日本va欧美va瓶| 久久国产影院| 国产免费播放一区二区| 一区二区视频欧美| 色婷婷综合网| 69堂精品视频在线播放| 一区福利视频| 日韩电影在线视频| 国产精品一区二区三区av| 日韩午夜av| 国产成人免费精品| 中文字幕乱码亚洲无线精品一区| 日本а中文在线天堂| 国产欧美日韩在线观看视频| 免费日韩av片| 日韩不卡视频在线观看| 国产精品久久久久77777丨| 亚洲一区二区三区高清不卡| 日韩欧美精品| 麻豆一区二区99久久久久| 亚洲精品三级| 国产一区导航| 天堂日韩电影| 国产精品99一区二区三| 欧美日韩一区二区国产| 亚洲精品综合| 亚洲一区二区动漫| 欧美高清不卡| 91精品国产91久久久久久黑人|