色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

key在列表里是什么意思

錢良釵2年前38瀏覽0評論

key在列表里是什么意思?

key是給每一個vnode的唯一id,可以依靠key,更準確, 更快的拿到oldVnode中對應(yīng)的vnode節(jié)點。

更準確

因為帶key就不是就地復(fù)用了,在sameNode函數(shù) a.key === b.key對比中可以避免就地復(fù)用的情況。所以會更加準確。

更快

利用key的唯一性生成map對象來獲取對應(yīng)節(jié)點,比遍歷方式更快。

vue和react都是采用diff算法來對比新舊虛擬節(jié)點,從而更新節(jié)點。在交叉對比中,當新節(jié)點跟舊節(jié)點頭尾交叉對比沒有結(jié)果時,會根據(jù)新節(jié)點的key去對比舊節(jié)點數(shù)組中的key,從而找到相應(yīng)舊節(jié)點(這里對應(yīng)的是一個key => index 的map映射)。如果沒找到就認為是一個新增節(jié)點。而如果沒有key,那么就會采用遍歷查找的方式去找到對應(yīng)的舊節(jié)點。一種一個map映射,另一種是遍歷查找。相比而言。map映射的速度更快。

不帶有key,并且使用簡單的模板,基于這個前提下,可以更有效的復(fù)用節(jié)點,diff速度來看也是不帶key更加快速的,因為帶key在增刪節(jié)點上有耗時。這就是vue文檔所說的默認模式。但是這個并不是key作用,而是沒有key的情況下可以對節(jié)點就地復(fù)用,提高性能。這種模式會帶來一些隱藏的副作用,比如可能不會產(chǎn)生過渡效果,或者在某些節(jié)點有綁定數(shù)據(jù)(表單)狀態(tài),會出現(xiàn)狀態(tài)錯位。VUE文檔也說明了。還有就是key的作用是為了在diff算法執(zhí)行時更快的找到對應(yīng)的節(jié)點,提高diff速度,但是這個含有爭議

php查詢數(shù)組key,key在列表里是什么意思