最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

在console中打印React Fiber樹的操作步驟

 更新時(shí)間:2024年04月11日 09:05:59   作者:猴賽雷  
React Fiber 是 React 16 中引入的新的協(xié)調(diào)引擎或重寫的核心算法, 真針Fiber的一個(gè)重要的核心概念Fiber Node,這次主要的研究對(duì)象是: 如何從使用者/學(xué)習(xí) 者角度 在js 代碼上 拿到fiber 樹結(jié)構(gòu)的信息,,需要的朋友可以參考下

眾所周知React的性能好得益于 他杰出特性 Fiber架構(gòu)設(shè)計(jì), React Fiber 是 React 16 中引入的新的協(xié)調(diào)引擎或重寫的核心算法, 真針Fiber的一個(gè)重要的核心概念Fiber Node。 Fiber Node 是對(duì)組件的實(shí)力在js代碼層面的結(jié)構(gòu)數(shù)據(jù)表現(xiàn)。 每個(gè) Fiber Node 對(duì)應(yīng)一個(gè) React Element,并包含了關(guān)于組件的信息,比如其類型、屬性等。Fiber Node 節(jié)點(diǎn)的關(guān)聯(lián)組織 構(gòu)成了Fiber Tree。 至于如何構(gòu)建, 怎么diff 調(diào)和等 這里就不過多贅述。

這次主要的研究對(duì)象是: 如何從使用者/學(xué)習(xí) 者角度 在js 代碼上 拿到fiber 樹結(jié)構(gòu)的信息。 比如頁面構(gòu)建完成后, console 對(duì)應(yīng)的fiber tree 的json。

第一步: 

react 切入項(xiàng)目入口是在 ReactDom.render() 。如下圖:

又或者是通過createRoot 進(jìn)而render 。 如下圖:

第二步:

查看react render 的源碼 一探究竟。

走到這里 大致就比較清晰了, 在root 節(jié)點(diǎn)上增加以字符串“__reactContainer” + 隨機(jī)數(shù) 的屬性, 屬性值就是fiberRoot 節(jié)點(diǎn)。

那是不是我們只要通過dom 節(jié)點(diǎn) 獲取root 節(jié)點(diǎn)的“__reactContainer” + 隨機(jī)數(shù) 的屬性 就找到了react 的樹節(jié)點(diǎn), 夜就拿到了整棵樹。

流程圖如下:

3. 開始實(shí)施。

const container = document.getElementById("app");
Object.getOwnPropertyNames(container).forEach(key =>{
    if(key.startsWith("__reactContainer")){
        console.log(key, container[key])
    }
} )

控制臺(tái)輸出如下圖

總結(jié):

react 的fiber 是掛在了dom  root 節(jié)點(diǎn)上 [“__reactContainer” + 隨機(jī)值] 的, 但是不建議依賴__reactContainer$和隨機(jī)鍵來獲取Fiber節(jié)點(diǎn),而是應(yīng)該使用React提供的官方API和工具來管理組件和調(diào)試應(yīng)用程序。

以上就是在console中打印React Fiber樹的操作步驟的詳細(xì)內(nèi)容,更多關(guān)于console中打印React Fiber的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 詳解如何優(yōu)雅地在React項(xiàng)目中使用Redux

    詳解如何優(yōu)雅地在React項(xiàng)目中使用Redux

    這篇文章主要介紹了詳解如何優(yōu)雅地在React項(xiàng)目中使用Redux,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-12-12
  • 淺談React + Webpack 構(gòu)建打包優(yōu)化

    淺談React + Webpack 構(gòu)建打包優(yōu)化

    本篇文章主要介紹了淺談React + Webpack 構(gòu)建打包優(yōu)化,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-01-01
  • React中多語言的配置方式

    React中多語言的配置方式

    這篇文章主要介紹了React中多語言的配置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • React Hook父組件如何獲取子組件的數(shù)據(jù)/函數(shù)

    React Hook父組件如何獲取子組件的數(shù)據(jù)/函數(shù)

    這篇文章主要介紹了React Hook父組件如何獲取子組件的數(shù)據(jù)/函數(shù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • React 腳手架使用指南(最新推薦)

    React 腳手架使用指南(最新推薦)

    本文介紹了React腳手架(CreateReactApp)的使用指南,包括創(chuàng)建項(xiàng)目、項(xiàng)目結(jié)構(gòu)、常用命令、最佳實(shí)踐、常見問題解決以及腳手架的優(yōu)勢(shì),結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧
    2024-12-12
  • React中Redux Hooks的使用詳解

    React中Redux Hooks的使用詳解

    這篇文章主要介紹了React Redux Hooks的使用詳解,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-07-07
  • React的setState批量更新機(jī)制詳解

    React的setState批量更新機(jī)制詳解

    React 的 setState 批量更新是 React 優(yōu)化性能的重要機(jī)制,它通過減少不必要的渲染次數(shù)來提高應(yīng)用性能,下面我將詳細(xì)解釋這一過程,需要的朋友可以參考下
    2025-05-05
  • React實(shí)現(xiàn)數(shù)字滾動(dòng)組件numbers-scroll的示例詳解

    React實(shí)現(xiàn)數(shù)字滾動(dòng)組件numbers-scroll的示例詳解

    數(shù)字滾動(dòng)組件,也可以叫數(shù)字輪播組件,這個(gè)名字一聽就是非常普通常見的組件。本文將利用React實(shí)現(xiàn)這一組件,感興趣的小伙伴可以了解一下
    2023-03-03
  • 使用hooks寫React組件需要注意的5個(gè)地方

    使用hooks寫React組件需要注意的5個(gè)地方

    這篇文章主要介紹了使用hooks寫React組件需要注意的5個(gè)地方,幫助大家更好的理解和學(xué)習(xí)使用React組件,感興趣的朋友可以了解下
    2021-04-04
  • 詳解React Native 采用Fetch方式發(fā)送跨域POST請(qǐng)求

    詳解React Native 采用Fetch方式發(fā)送跨域POST請(qǐng)求

    這篇文章主要介紹了詳解React Native 采用Fetch方式發(fā)送跨域POST請(qǐng)求,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-11-11

最新評(píng)論

贵港市| 万年县| 仁布县| 土默特左旗| 南召县| 托克逊县| 鹤峰县| 工布江达县| 茶陵县| 磐安县| 伊通| 刚察县| 富蕴县| 甘谷县| 新宁县| 邛崃市| 安岳县| 永福县| 保山市| 安达市| 徐水县| 永昌县| 宾川县| 安阳市| 北京市| 靖西县| 定陶县| 澎湖县| 西城区| 乌拉特中旗| 台北县| 工布江达县| 肥东县| 天门市| 朝阳县| 开封县| 东方市| 秀山| 嘉义县| 三亚市| 张掖市|