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

淺談Vue3中key的作用和工作原理

 更新時(shí)間:2021年08月08日 08:35:25   作者:易小川打碼  
本文主要介紹了Vue3中key的作用和工作原理,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

這個(gè)key屬性有什么作用呢?我們先來(lái)看一下官方的解釋?zhuān)?/strong>

  • kekey屬性主要用在Vue的虛擬DOM diff算法中,在新舊nodes對(duì)比時(shí)辨識(shí)Vnodes;
  • 如果不使用key,Vue會(huì)使用一種最大限度減少動(dòng)態(tài)元素并且盡可能的嘗試就地修改/復(fù)用相同類(lèi)型元素的算法
  • 而使用 key 時(shí),它會(huì)基于 key 的變化重新排列元素順序,并且會(huì)移除/銷(xiāo)毀 key 不存在的元素。

先簡(jiǎn)單提一下我對(duì)VNode的理解:

  • VNode的全稱(chēng)是Virtual Node,也就是虛擬節(jié)點(diǎn);
  • Vnode的本質(zhì)是一個(gè)JavaScript的對(duì)象;
  • 實(shí)際上在Vue中,無(wú)論是組件還是單個(gè)元素,都表示成了一個(gè)個(gè)VNode。

舉個(gè)例子:

<div class="title" style="color: red;">Helllo World</div>
// 實(shí)際上在Vue中會(huì)表示為:
const VNode = {
    type: "div",
    props: {
        class: "title",
        style: {
            color: "red"        
        }    
    },
    children: "Hello World" // 假如div里面還包含著其他標(biāo)簽,那么會(huì)以同樣的方式轉(zhuǎn)成在children里面
}

在什么情況下,插入f效率是最高的呢?

思路:

  • 重新渲染一次(消耗大量性能)
  • 前面的VNode不變,從插入位置重新渲染(消耗較大性能)
  • 所有的VNnode都重新渲染,只需插入新增VNode(性能最好)

結(jié)論:想要最高性能,那么必須給新舊VNodes進(jìn)行key標(biāo)識(shí),通過(guò)key值把舊的VNodes與新的VNodes進(jìn)行對(duì)比,想辦法找出需要增加的或者刪除的是哪個(gè)VNode,其他的VNode盡量不變,那么新舊VNodes對(duì)比的這個(gè)過(guò)程就是diff算法。

Vue事實(shí)上會(huì)對(duì)于有key和沒(méi)有key會(huì)調(diào)用兩個(gè)不同的方法,下面我們來(lái)看看源碼:(packages\runtime-core\src\renderer)

在有key的情況,執(zhí)行 patchKeyedChildren方法:

沒(méi)有key值,執(zhí)行 patchUnkeyedChildren方法:

注意:當(dāng)沒(méi)有key值時(shí),列表過(guò)多,也會(huì)依次進(jìn)行patch,會(huì)消耗大量性能,那么加上key值后就會(huì)節(jié)省很多性能損耗。

結(jié)論:

        所以 key值 是在DOM樹(shù)進(jìn)行diff算法時(shí)候發(fā)揮作用,一個(gè)是用來(lái)判斷新舊 Vnode 是否為同一個(gè),從而進(jìn)行下一步的比較以及渲染,另外一個(gè)作用就是判斷組件是否可以復(fù)用,是否需要重新渲染。

到此這篇關(guān)于Vue3中key的作用和工作原理的文章就介紹到這了,更多相關(guān)Vue3中key的作用和工作原理內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue子路由跳轉(zhuǎn)實(shí)現(xiàn)tab選項(xiàng)卡效果

    vue子路由跳轉(zhuǎn)實(shí)現(xiàn)tab選項(xiàng)卡效果

    這篇文章主要為大家詳細(xì)介紹了vue子路由跳轉(zhuǎn)實(shí)現(xiàn)tab選項(xiàng)卡效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Vue函數(shù)式組件的應(yīng)用實(shí)例詳解

    Vue函數(shù)式組件的應(yīng)用實(shí)例詳解

    這篇文章主要介紹了Vue函數(shù)式組件的應(yīng)用實(shí)例詳解,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-08-08
  • 在Vue中使用Echarts可視化庫(kù)的完整步驟記錄

    在Vue中使用Echarts可視化庫(kù)的完整步驟記錄

    這篇文章主要給大家介紹了關(guān)于在Vue中使用Echarts可視化庫(kù)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • Vue參數(shù)的增刪改實(shí)例詳解

    Vue參數(shù)的增刪改實(shí)例詳解

    這篇文章主要為大家詳細(xì)介紹了Vue參數(shù)的增刪改實(shí)例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-03-03
  • Vue中通過(guò)minio上傳文件的詳細(xì)步驟

    Vue中通過(guò)minio上傳文件的詳細(xì)步驟

    最近項(xiàng)目中使用了minio作為靜態(tài)資源管理服務(wù),所以簡(jiǎn)單寫(xiě)一下如何通過(guò)minio來(lái)上傳圖片,下面這篇文章主要給大家介紹了關(guān)于Vue中通過(guò)minio上傳文件的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • 如何修改Vue項(xiàng)目運(yùn)行的IP和端口

    如何修改Vue項(xiàng)目運(yùn)行的IP和端口

    這篇文章主要介紹了修改Vue項(xiàng)目運(yùn)行的IP和端口的方法,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-02-02
  • Vue實(shí)現(xiàn)二維碼數(shù)組的全選與反選功能

    Vue實(shí)現(xiàn)二維碼數(shù)組的全選與反選功能

    在開(kāi)發(fā)Web應(yīng)用程序時(shí),表格數(shù)據(jù)的展示和操作是非常常見(jiàn)的需求之一,特別是在處理表格中的復(fù)選框選擇時(shí),我們經(jīng)常需要實(shí)現(xiàn)全選、反選等功能,這篇文章將帶你深入了解如何在Vue.js中實(shí)現(xiàn)對(duì)二維數(shù)組數(shù)據(jù)的全選和反選功能,需要的朋友可以參考下
    2024-09-09
  • vue中計(jì)算屬性(computed)、methods和watched之間的區(qū)別

    vue中計(jì)算屬性(computed)、methods和watched之間的區(qū)別

    這篇文章主要給大家介紹了關(guān)于vue中計(jì)算屬性(computed)、methods和watched之間區(qū)別的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-07-07
  • Vue發(fā)送ajax請(qǐng)求方法介紹

    Vue發(fā)送ajax請(qǐng)求方法介紹

    這篇文章介紹了Vue發(fā)送ajax請(qǐng)求的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-01-01
  • Vue2.0實(shí)現(xiàn)組件數(shù)據(jù)的雙向綁定問(wèn)題

    Vue2.0實(shí)現(xiàn)組件數(shù)據(jù)的雙向綁定問(wèn)題

    這篇文章主要介紹了Vue2.0實(shí)現(xiàn)組件數(shù)據(jù)的雙向綁定問(wèn)題,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2018-03-03

最新評(píng)論