您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“vue for循環(huán)中key的作用是什么”,內(nèi)容詳細,步驟清晰,細節(jié)處理妥當(dāng),希望這篇“vue for循環(huán)中key的作用是什么”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識吧。
無論是react還是vue框架,在列表渲染時都會提示或者要求每個列表項使用唯一的key。這個key有什么作用?如何正確設(shè)置value呢?
這道題目實際考察的是對虛擬dom對象中diff算法的理解。
diff算法的本質(zhì)是:找出新舊兩個虛擬dom對象之間的差異,目的是盡可能復(fù)用節(jié)點,提高性能。
key的主要作用就是在diff算法中判斷新舊節(jié)點是否是同一類型,從而復(fù)用與新節(jié)點對應(yīng)的老節(jié)點,節(jié)約性能的開銷
export function isSameVNodeType(n1: VNode, n2: VNode): boolean {
return n1.type === n2.type && n1.key === n2.key
}
舉個反面的例子理解下,我們經(jīng)常使用數(shù)組的index作為列表的key使用,看下具體的流程哈
如果是順序增加元素,順序不會亂,所以不會造成影響,可以正常使用;
如果存在列表刪除、元素間對換的話,因為key(index)是一樣的,新節(jié)點順序和老節(jié)點順序仍然是從前往后一一對應(yīng)的,但是通過對節(jié)點的內(nèi)容進行判斷,元素內(nèi)容實際已經(jīng)變化,是需要一次內(nèi)容更新的,這就造成了一次性能開銷。在chrome調(diào)試工具中是可以觀察到節(jié)點內(nèi)容變化的,有興趣的可以嘗試下。
讀到這里,這篇“vue for循環(huán)中key的作用是什么”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領(lǐng)會,如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。