vue中key的作用

2021-10-23 14:55:50 字數 987 閱讀 8199

vue和react都實現了一套虛擬dom,使我們可以不直接操作dom元素,只運算元據便可以重新渲染頁面。其功勞歸功於背後高效的diff演算法。

兩個相同的元件產生類似的dom結構,不同的元件產生不同的dom結構。

同一層級的一組節點,他們可以通過唯一的id進行區分。

當頁面的教據發生變化時,diff演算法只會比較同一層級的節點

1.如果節點型別不同,直接乾掉前面的節點,再建立並插入新的節點,

不會再比較這個節點以後的子節點了。

2.如果節點型別相同,則會重新設定該節點的屬性,從而實現節點的更新。

當某一層有很多相同的節點時,也就是列表節點時,diff演算法的更新過程預設情況下也是遵循以上原則。如以下情況:

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

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

所以我們需要使用key來給每個節點做乙個唯一標識,diff演算法就可以正確的識別此節點,找到正確的位置區插入新的節點。

總結:

key的作用主要是為了高效的更新虛擬dom,並且在vue中在使用相同標籤名,

元素的過渡切換時,也會使用到key屬性,其目的也是為了讓vue可以區分它們

vue中key的作用

v for中為什麼要加key呢,這裡我給大家舉個栗子 沒有key text v model name add 新增 button div for item,i in list checkbox li ul 建立 vue 例項,得到 viewmodel var vm newvue methods th...

Vue中key的作用

相信大多數vue開發者接觸到key屬性的時候是使用v for進行列表渲染的時候,如果不使用key屬性,vue會產生警告,那麼在這個時候key屬性的作用是什麼呢?官方文件中說 當 vue.js 用v for正在更新已渲染過的元素列表時,它預設用 就地復用 策略。如果資料項的順序被改變,vue 將不會移...

Vue中key的作用

官方文件 vue 會盡可能高效地渲染元素,通常會復用已有元素而不是從頭開始渲染。這麼做除了使 vue 變得非常快之外,還有其它一些好處。例如,如果你允許使用者在不同的登入方式之間切換 usernamelabel template emaillabel template 那麼在上面的 中切換login...