欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Vue中key的原理以及diff算法詳解

 更新時間:2025年04月01日 14:26:02   作者:謙虛且進步  
這篇文章主要介紹了Vue中key的原理以及diff算法,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

Vue中key的原理以及diff算法

簡介

Vue的key用于在虛擬DOM中標記節(jié)點,方便后面的diff對比算法進行對比,提升效率。

Vue的vm或者vc實例一共管理著3個DOM對象

分別他的模板對應的真實DOM、真實DOM的備份、以及重新生成的新的DOM,后兩個可以看成是虛擬DOM,只要后面兩個DOM的DOM樹的葉子或者節(jié)點不一樣(被指令操作虛擬DOM進行了修改),那么就會通過渲染函數(shù)render重新更新HTML頁面上的真實DOM。

使用列表渲染時

會生成新的節(jié)點,這些節(jié)點不是一開始在模板當中寫的,屬于后來的DOM節(jié)點,所以需要特殊管理。

列表渲染新生成的DOM節(jié)點一般是一棵子DOM樹

使用key可以記錄這棵子樹的根節(jié)點,diff差分算法就是根據(jù)從這個子樹的根節(jié)點開始進行對比,判斷DOM節(jié)點是否發(fā)生變化。

  • 如果發(fā)現(xiàn)key不存在,直接創(chuàng)建新的子樹。
  • 如果key存在,則會對子樹遍歷。但是對于一些在HTML中的真實DOM中存在的內(nèi)容,比如input框里面的內(nèi)容,Vue是不知道的,因為Vue只有一開始真實DOM的備份,后面這個HTML頁面上的真實DOM發(fā)生了什么變化Vue是不知道的。這就會導致真實DOM的一部分被替換掉,而另外一部分還是殘留的老的真實DOM。

如果遍歷容器時

使用index作為key,則會出現(xiàn)部分真實DOM殘留的問題。實際開發(fā)中,一般使用獨一無二的index作為key。

總結(jié)如下

  • 最好使用每條數(shù)據(jù)的唯一標識作為key,比如id、手機號、身份證號、學號等唯一值
  • 如果不存在對數(shù)組數(shù)據(jù)的逆序添加、逆序刪除等破壞順序的操作,僅用于渲染列表,使用index作為key是沒有問題的

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • vue.js聲明式渲染和條件與循環(huán)基礎知識

    vue.js聲明式渲染和條件與循環(huán)基礎知識

    這篇文章主要為大家詳細介紹了vue.js聲明式渲染和條件與循環(huán)的基礎知識,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • vue中el-table和jsplumb實現(xiàn)連線功能

    vue中el-table和jsplumb實現(xiàn)連線功能

    本文主要介紹了el-table和jsplumb實現(xiàn)連線功能,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-07-07
  • 使用Vue.js 和Chart.js制作絢麗多彩的圖表

    使用Vue.js 和Chart.js制作絢麗多彩的圖表

    這篇文章主要介紹了使用Vue.js 和Chart.js制作絢麗多彩的圖表,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,,需要的朋友可以參考下
    2019-06-06
  • 一文詳解Vue中的虛擬DOM與Diff算法

    一文詳解Vue中的虛擬DOM與Diff算法

    vue中的diff算法時常是面試過程中的考點,本文將為大家講解何為diff以及diff算法的實現(xiàn)過程,那么在了解diff之前,我們需要先了解虛擬DOM是什么,需要的朋友可以參考下
    2024-02-02
  • vue2如何獲取上頁的url地址

    vue2如何獲取上頁的url地址

    這篇文章主要介紹了vue2如何獲取上頁的url地址問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • Vue組件通信之Bus的具體使用

    Vue組件通信之Bus的具體使用

    本篇文章主要介紹了Vue組件通信之Bus的具體使用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12
  • VUE實現(xiàn)移動端列表篩選功能

    VUE實現(xiàn)移動端列表篩選功能

    這篇文章主要介紹了VUE實現(xiàn)移動端列表篩選功能,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-08-08
  • vue router的基本使用和配置教程

    vue router的基本使用和配置教程

    這篇文章主要介紹了vue-router的基本使用和配置教程,非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧,需要的朋友可以參考下
    2018-11-11
  • vue中實現(xiàn)上傳文件給后臺實例詳解

    vue中實現(xiàn)上傳文件給后臺實例詳解

    在本文里小編給大家分享了一篇關于vue中實現(xiàn)上傳文件給后臺的實例內(nèi)容,有需要此功能的可以學習參考下。
    2019-08-08
  • vue如何實現(xiàn)點擊選中取消切換

    vue如何實現(xiàn)點擊選中取消切換

    這篇文章主要介紹了vue實現(xiàn)點擊選中取消切換,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05

最新評論