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

vue diff算法與虛擬dom知識整理(4) h函數(shù)虛擬節(jié)點嵌套

這篇具有很好參考價值的文章主要介紹了vue diff算法與虛擬dom知識整理(4) h函數(shù)虛擬節(jié)點嵌套。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

那么 先補充上文有一個沒強調(diào)的點
h函數(shù) 當你不需要屬性時 其實是可以不傳的
例如 我們打開案例 打開 src下的index.js
修改代碼如下

import {
    init,
    classModule,
    propsModule,
    styleModule,
    eventListenersModule,
    h,
  } from "snabbdom";

  //創(chuàng)建patch函數(shù)
  const patch = init([
    classModule,
    propsModule,
    styleModule,
    eventListenersModule
  ]);
 
  //創(chuàng)建虛擬節(jié)點
  var vonm = h("duv","你好");

  //讓虛擬節(jié)點上樹
  const container = document.getElementById('container');
  patch(container,vonm);

聲明標簽為div 不需要任何標簽屬性 因此 我們就直接 告訴他div 然后后面一個參數(shù)直接跟里面的文本 程序也能識別 我們運行項目
vue diff算法與虛擬dom知識整理(4) h函數(shù)虛擬節(jié)點嵌套
可以看到 一切正常 所以 這個h函數(shù)還是很好用的

然后 我們虛擬dom節(jié)點是可以嵌套虛擬dom節(jié)點的
簡單說 就是 將一個虛擬dom節(jié)點作為另一個虛擬dom的子節(jié)點
h函數(shù)是可以嵌套的

這里 就可以簡單理解為 h函數(shù) 聲明了一個虛擬的 ul dom節(jié)點 他的第二個參數(shù)沒有傳屬性 第三個參數(shù) 直接給了個數(shù)組 每個數(shù)組都是一個h函數(shù)聲明出來的虛擬dom節(jié)點 因此
就會成為他的子節(jié)點
vue diff算法與虛擬dom知識整理(4) h函數(shù)虛擬節(jié)點嵌套
這里 我們將 src下的index.js代碼更改如下

import {
    init,
    classModule,
    propsModule,
    styleModule,
    eventListenersModule,
    h,
  } from "snabbdom";

  //創(chuàng)建patch函數(shù)
  const patch = init([
    classModule,
    propsModule,
    styleModule,
    eventListenersModule
  ]);
  
  const xvul = h("ul",[
    h("li","java"),
    h("li","html"),
    h("li","C#")
  ]);

  //讓虛擬節(jié)點上樹
  const container = document.getElementById('container');
  patch(container,xvul);

因為我們 ul 不需要標簽屬性啊 所以 h函數(shù)的第二個參數(shù)就不穿了 直接 標簽類型 后面跟子節(jié)點的數(shù)組
然后 每個子節(jié)點都是 h函數(shù)聲明出來的 li虛擬節(jié)點 同樣 他們也不需要標簽屬性 就沒有加第二個屬性參數(shù) 直接在后面跟文本內(nèi)容了
然后 我們運行項目
vue diff算法與虛擬dom知識整理(4) h函數(shù)虛擬節(jié)點嵌套
可以看到 我們完整的一個無序列表就出來了

再有層次 就一直往下套數(shù)組就好了
例如

import {
    init,
    classModule,
    propsModule,
    styleModule,
    eventListenersModule,
    h,
  } from "snabbdom";

  //創(chuàng)建patch函數(shù)
  const patch = init([
    classModule,
    propsModule,
    styleModule,
    eventListenersModule
  ]);
  
  const xvul = h("ul",[
    h("li","java"),
    h("li","html"),
    h("li",[
      h("div","嘻嘻哈哈")
    ])
  ]);

  //讓虛擬節(jié)點上樹
  const container = document.getElementById('container');
  patch(container,xvul);

這樣 我們第三個 li 就里面又套了一個div
我們看界面效果
vue diff算法與虛擬dom知識整理(4) h函數(shù)虛擬節(jié)點嵌套
沒有任何問題

可能有人會想 我就一個節(jié)點 也要搞個數(shù)組嗎?
這個 開發(fā)者也想到了
我們可以改成這樣

import {
    init,
    classModule,
    propsModule,
    styleModule,
    eventListenersModule,
    h,
  } from "snabbdom";

  //創(chuàng)建patch函數(shù)
  const patch = init([
    classModule,
    propsModule,
    styleModule,
    eventListenersModule
  ]);
  
  const xvul = h("ul",[
    h("li","java"),
    h("li","html"),
    h("li",h("div","嘻嘻哈哈"))
  ]);

  //讓虛擬節(jié)點上樹
  const container = document.getElementById('container');
  patch(container,xvul);

效果是一樣的
vue diff算法與虛擬dom知識整理(4) h函數(shù)虛擬節(jié)點嵌套
多個時 用數(shù)組
單個時 你可以用數(shù)組 但也可以直接寫個h函數(shù)聲明的虛擬節(jié)點上去 肯定是后者看著更友好一點

好 h函數(shù)就很靈活 這個大家也都感受到了

這樣 我下一文就會來講一下這個h函數(shù)文章來源地址http://www.zghlxwxcb.cn/news/detail-433825.html

到了這里,關(guān)于vue diff算法與虛擬dom知識整理(4) h函數(shù)虛擬節(jié)點嵌套的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • React源碼解析18(10)------ 實現(xiàn)多節(jié)點的Diff算法

    在上一篇中,實現(xiàn)了多節(jié)點的渲染。但是之前寫得diff算法,只能適用于單節(jié)點的情況,例如這種情況: 如果對于多節(jié)點的情況: 之前實現(xiàn)的diff算法就不會有效果了,所以在這一篇中,我們主要實現(xiàn)針對于多節(jié)點的diff算法。 實現(xiàn)之前,我們先將index.js修改一下: 在reconcile

    2024年02月12日
    瀏覽(18)
  • vue中刪除dom元素節(jié)點

    vue中刪除dom元素節(jié)點

    document.querySelectorAll(…).remove is not a function\\\" 因為 document.querySelectorAll(‘.esedbox .triangle_b’)返回的不是數(shù)組,而是類數(shù)組 ,不能用remove方法(remove方法是dom元素節(jié)點的方法) Array.from()方法主要用于將兩類對象(類似數(shù)組的對象[array-like object]和可遍歷對象[iterable])轉(zhuǎn)為真正的數(shù)

    2024年02月11日
    瀏覽(13)
  • 【ES6】Proxy的高級用法,實現(xiàn)一個生成各種 DOM 節(jié)點的通用函數(shù)dom

    【ES6】Proxy的高級用法,實現(xiàn)一個生成各種 DOM 節(jié)點的通用函數(shù)dom

    下面的例子則是利用get攔截,實現(xiàn)一個生成各種 DOM 節(jié)點的通用函數(shù)dom。 輸出結(jié)果:

    2024年02月10日
    瀏覽(22)
  • vue3 - vue3中使用ref來獲取dom節(jié)點

    vue3 - vue3中使用ref來獲取dom節(jié)點

    vue3和vue2獲取元素的不同:vue2是通過 this.$refs api獲取dom節(jié)點的 ; vue3是 直接使用同名的 ref 響應式數(shù)據(jù)來獲取的; 1,常規(guī)使用 注意: 節(jié)點上的 ref=“input” 需要和 const input = ref(null)相對應 才能獲取到此dom節(jié)點 2,v-for中的ref獲取 有時我們需要 獲取循環(huán)中的dom節(jié)點 并根據(jù)狀態(tài)

    2024年02月16日
    瀏覽(19)
  • Vue 虛擬DOM

    Vue 虛擬DOM

    在當今Web開發(fā)領域中,構(gòu)建交互性強、可復用且易于維護的用戶界面是至關(guān)重要的。而Vue.js作為一款現(xiàn)代化且流行的JavaScript框架,正是為了滿足這些需求而誕生。它采用了MVVM架構(gòu)模式,并通過數(shù)據(jù)驅(qū)動和組件化的方式,使我們能夠更輕松地構(gòu)建出優(yōu)雅而高效的Web應用程序。

    2024年02月22日
    瀏覽(23)
  • vue的虛擬DOM

    虛擬DOM就是一個JS對象,用它來描述真實DOM demo1: 多次執(zhí)行dom操作 demo2: 只執(zhí)行一次dom操作 比較運行時間:得到結(jié)論 越多的真實dom操作,越損耗性能 操作數(shù)據(jù)要大大的減少性能損耗,提高渲染效率 第一種更新DOM的方案 第二種更新DOM的方案 第三種使用虛擬DOM的方案 key是虛擬

    2024年02月09日
    瀏覽(19)
  • vue中的虛擬dom

    DOM操作是Web開發(fā)中非常昂貴和低效的操作,尤其是在用戶界面頻繁更新的情況下。此時,在每次數(shù)據(jù)更新時重新渲染整個DOM樹會導致應用程序性能下降。 為了解決這個問題,虛擬DOM被引入到前端開發(fā)中。虛擬DOM把整個DOM樹抽象成一個JS對象,這樣開發(fā)者就可以直接操作JS對象

    2024年02月09日
    瀏覽(21)
  • Vue面試之虛擬DOM

    ????最近在整理一些前端面試中經(jīng)常被問到的問題,分為vue相關(guān)、react相關(guān)、js相關(guān)、react相關(guān)等等專題,可持續(xù)關(guān)注后續(xù)內(nèi)容,會不斷進行整理~ ????虛擬 DOM 是用 JavaScript 對象來模擬實際 DOM 結(jié)構(gòu)的一種抽象表示。它描述了組件的結(jié)構(gòu)、屬性和事件等信息,但與實際的頁面

    2024年01月21日
    瀏覽(20)
  • 【vue】diff 算法詳解

    【vue】diff 算法詳解

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

    2024年02月02日
    瀏覽(13)
  • vue 虛擬DOM的優(yōu)劣說明

    Vue.js 使用虛擬 DOM(Virtual DOM)來提高應用的性能。虛擬 DOM 是一種編程概念,它通過在內(nèi)存中創(chuàng)建一個與真實 DOM 結(jié)構(gòu)相同的虛擬結(jié)構(gòu),來優(yōu)化對真實 DOM 的操作。下面是對 Vue.js 中虛擬 DOM 的優(yōu)劣說明和代碼示例。 優(yōu)勢: 性能優(yōu)化 :Vue.js 通過虛擬 DOM 減少了直接操作真實

    2024年01月25日
    瀏覽(18)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領取紅包

二維碼2

領紅包