国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

vue的diff算法原理

這篇具有很好參考價值的文章主要介紹了vue的diff算法原理。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

diff 概念

vue基于虛擬DOM做更新,diff的核心就是比較兩個虛擬節(jié)點的差異。
vue的diff算法是平級比較,不考慮跨級比較的情況。內部采用深度遞歸+ 雙指針的方式進行比較

vue的diff算法原理

diff比較流程

  1. 先比較是否是相同節(jié)點 key tag (標識,標簽名)
  2. 相同節(jié)點比較屬性,并復用老節(jié)點(將老的虛擬dom復用給新的虛擬節(jié)點dom)
  3. 比較兒子節(jié)點,考慮老節(jié)點和新節(jié)點兒子的情況
      1. 老的沒兒子,現(xiàn)在有兒子。直接插入新的兒子
      1. 老的有兒子,新的沒兒子。直接刪除頁面節(jié)點
      1. 老的兒子是文本,新的兒子是文本,直接更新文本節(jié)點即可
      1. 老的兒子是一個列表,新的兒子也是一個列表 updateChildren – 核心的diff算法,化為數(shù)組比對
  4. 列表優(yōu)化比較(對于列表的情況,updateChildren)

頭頭,尾尾,尾頭,頭尾比對查找

頭頭

先看頭指針和頭指針,若相同則頭指針同時往右移,直到上方的頭尾重合遍歷完成,把下方的D 直接拿上來
vue的diff算法原理

尾尾

如果頭指針和頭指針不一樣,再看尾指針和尾指針,若相同則尾指針同時往左走,知道上方的頭尾重合遍歷完成,把下方的D直接拿上來
vue的diff算法原理

頭尾

如果頭指針和頭指針不一樣,且尾指針和尾指針不一樣,再看頭指針和尾指針,若相同則把頭指針插到尾指針的后面,頭指針往后移,尾指針往前移,—之后再按照 頭頭,尾尾,頭尾,尾頭,直到遍歷完成
vue的diff算法原理

尾頭

如果頭指針和頭指針不一樣,且尾指針和尾指針不一樣,頭指針和尾指針不一樣,,再看尾指針和頭指針,若相同則把尾指針插到頭指針的前面,尾指針往前移,頭指針往后移,—之后再按照 頭頭,尾尾,頭尾,尾頭,直到遍歷完成
vue的diff算法原理

比對查找

如果頭頭,尾尾,頭尾,尾頭都不成立,就會通過對比查找的方式,若下面的頭指針的元素,在上面中存在,則會把上面元素的放到頭指針前面,下面頭指針往后移,上面頭指針不變,–之后再按 頭頭,尾尾,尾頭,頭尾,對比查找,直到遍歷完成
vue的diff算法原理

過程

vue的diff算法原理

與vue3的區(qū)別

vue采用的 最長遞歸序列法 來實現(xiàn) diff 優(yōu)化文章來源地址http://www.zghlxwxcb.cn/news/detail-425073.html

到了這里,關于vue的diff算法原理的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 面試被問到vue的diff算法原理,我不允許你回答不上來

    面試被問到vue的diff算法原理,我不允許你回答不上來

    diff 算法是一種通過同層的樹節(jié)點進行比較的高效算法 其有兩個特點: 比較只會在同層級進行, 不會跨層級比較 在diff比較的過程中,循環(huán)從兩邊向中間比較 diff 算法在很多場景下都有應用,在 vue 中,作用于虛擬 dom 渲染成真實 dom 的新舊 VNode 節(jié)點比較 diff 整體策略為:深度

    2023年04月12日
    瀏覽(27)
  • vue diff算法與虛擬dom知識整理(15) 終結篇,收尾新前到舊前全部不匹配情況

    vue diff算法與虛擬dom知識整理(15) 終結篇,收尾新前到舊前全部不匹配情況

    我們現(xiàn)在就只需要處理最后一種情況了 我們在 updateChildren.js 在while中 的if最后加個 else 當他們都沒喲匹配到的情況 我們現(xiàn)在在updateChildren.js最上面 定義一個空對象 叫 keyMap 參考代碼如下 然后 在我們剛寫的else中編寫代碼如下 簡單說 我們判斷 如果所有條件都不匹配 就先看看

    2024年02月08日
    瀏覽(25)
  • 云計算的基本概念術語說明和核心算法原理

    作者:禪與計算機程序設計藝術 云計算的基本概念是分布式處理、并行處理和網格計算的發(fā)展,是一種新興的商業(yè)計算模型。它通過使計算分布在大量的分布式計算機上,而非本地計算機或遠程服務器中,使得企業(yè)數(shù)據中心的運行更與互聯(lián)網相似。云計算的核心算法原理包括

    2024年02月14日
    瀏覽(20)
  • AI 大模型 LLM 的基礎概念、核心算法原理數(shù)學模型和發(fā)展歷史及其應用領域

    LLM(Large Language Model)是一種大型自然語言處理模型,它基于深度學習技術,通過大規(guī)模預訓練和微調的方式來完成各種自然語言處理任務。下面我們簡要介紹 LLM 模型的發(fā)展歷史以及應用領域。 在過去的幾年中,許多研究人員不斷地探索著更加高效的深度學習算法和模型架

    2024年02月10日
    瀏覽(19)
  • 虛擬dom及diff算法之 —— h函數(shù)和diff函數(shù)

    虛擬dom及diff算法之 —— h函數(shù)和diff函數(shù)

    新虛擬dom和老虛擬dom進行diff算法(精細化比較),算出如何最小量更新,最后反映到真實dom上 diff是發(fā)生在虛擬dom上的 模板編譯 虛擬dom如何產生 - 渲染函數(shù)(h函數(shù)) h函數(shù)產生虛擬節(jié)點(vnode) Dom節(jié)點: a href=\\\"https://www.baidu.com\\\"真實Dom/a 調用h函數(shù): h(\\\'a\\\',{props:{href:\\\"https://www

    2024年02月06日
    瀏覽(18)
  • React Diff算法原理

    ??點此(想要了解Diff算法) Diff算法原理 React Diff算法是React用于更新虛擬DOM樹的一種算法。它通過比較新舊虛擬DOM樹的差異,然后只對有差異的部分進行更新,從而提高性能。 React Diff算法的原理如下: 逐層比較:React Diff算法會從根節(jié)點開始逐層比較新舊虛擬DOM樹的節(jié)點。

    2024年02月11日
    瀏覽(20)
  • 十分詳細的diff算法原理解析

    本文我們總結一下有關 diff算法 的相關內容和實現(xiàn)原理 開門見山,直接先給出大家 diff算法 的概念 diff算法 可以看作是一種對比算法,對比的對象是 新舊虛擬Dom 。顧名思義, diff算法 可以找到 新舊虛擬Dom 之間的差異,但 diff算法 中其實并不是只有對比 虛擬Dom ,還有根據對

    2023年04月08日
    瀏覽(13)
  • 前端(八)——深入探索前端框架中的Diff算法:優(yōu)化視圖更新與性能提升

    前端(八)——深入探索前端框架中的Diff算法:優(yōu)化視圖更新與性能提升

    ??博主:小貓娃來啦 ??文章核心: 深入探索前端框架中的Diff算法:優(yōu)化視圖更新與性能提升 前端框架中的diff算法是一種比較兩個虛擬DOM樹之間差異的算法。在更新頁面時,為了提高性能,前端框架通常會先生成新的虛擬DOM樹,然后通過diff算法比較新舊虛擬DOM樹的差異,

    2024年02月16日
    瀏覽(16)
  • Vue2 - diff 原理(動圖演示)

    Vue2 - diff 原理(動圖演示)

    解釋:對比新舊虛擬DOM樹,完成對真實DOM的更新,這個對比差異的過程叫做 diff 。 Vue 會在內部的 patch 函數(shù)中完成該過程。 當組件創(chuàng)建時,或依賴的數(shù)據變化時,會運行一個特定的函數(shù)來做2件事: 運行 _render 函數(shù)生成新的 VNode tree(虛擬DOM樹) 運行 _update 函數(shù),傳入新的

    2024年02月03日
    瀏覽(18)
  • 【vue】diff 算法詳解

    【vue】diff 算法詳解

    diff算法是一種通過 同層的樹節(jié)點 進行比較的高效算法 ????????diff算法的目的就是找出新舊不同虛擬DOM之間的差異,使最小化的更新視圖,所以 diff 算法本質上就是比較兩個js對象的差異 特點 ? ? ? ? 1. 比較只會在同層級進行,不會跨層級比較 ? ? ? ? 2. 在diff比較的構成

    2024年02月02日
    瀏覽(13)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包