V for遍歷 新增key

2021-10-05 18:18:39 字數 1118 閱讀 8759

v-for=「movie in movies」

依次從movies中取出movie,並且在元素的內容中,我們可以使用mustache語法,來使用movie

如果在遍歷的過程中,我們需要拿到元素在陣列中的索引值呢?

語法格式:v-for=(item, index) in items

其中的index就代表了取出的item在原陣列的索引值。

>

for=

"item in names"

>

}<

/li>

<

/ul>

for=

"(value, key) in info"

>}-

}<

/li>

<

/ul>

for=

"(value, key, index) in info"

>}-

}-}<

/li>

<

/ul>

<

/div>

"../js/vue.js"

>

<

/script>

newvue(}

})<

/script>

這個其實和vue的虛擬dom的diff演算法有關係。

這裡我們借用react』s diff algorithm中的一張圖來簡單說明一下:

當某一層有很多相同的節點時,也就是列表節點時,我們希望插入乙個新的節點

我們希望可以在b和c之間加乙個f,diff演算法預設執行起來是這樣的。

即把c更新成f,d更新成c,e更新成d,最後再插入e,是不是很沒有效率?

所以我們需要使用key來給每個節點做乙個唯一標識

diff演算法就可以正確的識別此節點

找到正確的位置區插入新的節點。

所以一句話,key的作用主要是為了高效的更新虛擬dom。

v for使用key的原因

1.vue中列表迴圈需加 key 唯一標識 唯一標識最好是item裡面id等。因為vue元件高度復用,增加key可以標識元件的唯一性,更好地區別各個元件。key的作用主要是為了高效地更新虛擬dom。2.key主要用來做dom diff演算法用的,diff演算法是同級比較,比較當前標籤上的key還有它...

Vue指令v for和key屬性

迭代陣列 迭代物件中的屬性 迭代數字 這是第 個p標籤 2.2.0 的版本裡,當在元件中使用v for 時,key 現在是必須的。當 vue.js 用 v for 正在更新已渲染過的元素列表時,它預設用 就地復用 策略。如果資料項的順序被改變,vue將不是移動 dom 元素來匹配資料項的順序,而是簡...

v for中key屬性的作用

key 當 vue.js 用v for正在更新已渲染過的元素列表時,它預設用 就地復用 策略。如果資料項的順序被改變,vue 將不會移動 dom 元素來匹配資料項的順序,而是簡單復用此處每個元素,並且確保它在特定索引下顯示已被渲染過的每個元素。我們在使用的使用經常會使用index 即陣列的下標 來作...