v for當中為什麼加id

2021-10-24 20:24:05 字數 515 閱讀 3482

當我們不加id的情況下,計算機渲染的方式是一一比較進行插入,如下例子:

比如,在2和3中間插入5,計算機的編譯器會從1開始一一進行比較,知道找到3才會開始進行替換,並且3之後的所有資料都需要進行替換。

這樣如果資料量多的情況下是比較麻煩的,而vue當中元件的復用率是很高的,為了不一一進行比較,提高效率,所以會用id進行標註,當需要在2和3處插入5的時候,通過id找到2和3的位置即可。

還有一種就是,比如多選框,我們選中了第二個位置的資料,在第一位新增新資料,那麼原有的第一位資料就會變為第二位,這樣就不準確了,如下例:

所以,加id是當前節點的唯一表示,既提高了編譯速度,又有利於準確的找到預設節點。

v for中為什麼要加key,原理是什麼

原理 1.vue實現了一套虛擬dom,使我們可以不直接操作dom元素,只運算元據就可以重新渲染頁面,而隱藏在背後的原理是高效的diff演算法 2.當頁面資料發生改變,diff演算法只會比較同一層級的節點 3.如果節點型別不同,直接乾掉前面的節點,再建立並新增新的節點,不會再比較這個節點後面的子節點 ...

vue心得之 原始碼解析v for為什麼要加key

為了標識該節點是該節點,優化patch演算法,在某些情況下可以減少dom操作 具體使用場景即作用參考下原始碼 vue2 由以上 可以理解網上的這兩張圖了 對arrdata a,b,c,d,e 更新成arrdata a,b,f,c,d,e 在 v for迴圈遍歷後新增了key能標識原本的a,b,c,d...

Vue中v for為什麼使 key

我們需要使用key來給每個節點做乙個唯一標識,diff演算法就可以正確的識別此節點,找到正確的位置區插入新的節點。加key主要不是為了效能,主要是為了區分兩個 vnode 節點。比如乙個列表,增加其中一項,如果不加 key 區分,增加後新舊 vnode 對比就會出現 bug。因為列表元素 dom 結...