成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

說說 React 中 Fiber、DOM、ReactElement 實(shí)例對(duì)象之間的引用關(guān)系

開發(fā) 前端
本文探究 Fiber、DOM、ReactElement、類組件實(shí)例對(duì)象之間的引用關(guān)系。

大家好,我是前端西瓜哥。

本文探究 fiber、DOM、ReactElement、類組件實(shí)例對(duì)象之間的引用關(guān)系。

React 版本為 18.2.0

原生組件 fiber

圖片

原生組件 fiber,指的就是 type 為 "span"、"div" 的 fiber。

  1. fiber.stateNode 指向真實(shí) DOM 節(jié)點(diǎn)。
  2. node["__reactFiber$" + randomKey] 。
  3. node["__reactProps$" + randomKey] 指向最新 props 對(duì)象。

類組件 fiber

圖片

  1. fiber.stateNode 指向類實(shí)例對(duì)象 instance。
  2. instance.__reactInternalSnapshotBeforeUpdate 指向 snapshot 對(duì)象(該對(duì)象通過 getSnapshotBeforeUpdate 生成,并提供給 componentDidUpdate 使用)。

利用 DOM 節(jié)點(diǎn)的 ['__reactFiber$' + randomKey] 屬性,我們能拿到對(duì)應(yīng)的原生組件 fiber。

通過這個(gè) fiber,我們其實(shí)拿到了整棵 fiber 樹。比如我們可以通過遞歸訪問 fiber.return 找到它所在的類組件或函數(shù)組件 fiber。

在控制臺(tái)選中一個(gè)元素,然后輸入 $0.__reactFi 然后按下 tab 鍵補(bǔ)全屬性,然后回車,我們就拿到了一個(gè)原生組件 fiber。

圖片

通過這個(gè)小技巧,我們可以去觀摩觀摩使用了 React 的網(wǎng)站的 fiber 樹結(jié)構(gòu),比如 figma。

React 版本太低的話,是沒有這個(gè)屬性的。

根 fiber

圖片

rootFiber 是一棵 fiber 樹的根節(jié)點(diǎn)。

fiberRoot 是 fiber 樹的根節(jié)點(diǎn)的維護(hù)者,它的 current 決定使用兩棵 fiber 樹的那一棵(使用了雙緩存技術(shù))。

  1. fiberRoot.current 指向一個(gè) rootFiber 節(jié)點(diǎn)。
  2. rootFiber.stateNode 指向 fiberRoot。
  3. rootNode["__reactContainer$" + randomKey] 指向 rootFiber。

ReactElement

圖片

ReactElement 的 _owner 指向向上最近的類組件或函數(shù)組件 fiber。

責(zé)任編輯:姜華 來源: 前端西瓜哥
相關(guān)推薦

2021-05-11 07:51:30

React ref 前端

2022-12-19 08:17:36

ReactReconciler

2022-07-13 15:23:57

Vue fiberreact前端

2021-07-29 07:55:20

React Fiber架構(gòu)引擎

2021-08-16 09:59:52

ReactSvelte開發(fā)

2022-04-16 20:10:00

React Hookfiber框架

2010-06-17 18:57:11

UML對(duì)象關(guān)系

2016-10-26 20:49:24

ReactJavascript前端

2025-03-03 00:00:03

2021-07-30 07:47:36

DOMReactJsx

2021-04-09 18:01:03

前端ReactDOM

2021-06-29 09:47:34

ReactSetState機(jī)制

2010-09-28 11:11:23

XML DOMHTML DOM

2022-03-22 13:39:10

框架react面試

2022-02-11 13:44:56

fiber架構(gòu)React

2010-07-12 14:32:29

UML對(duì)象關(guān)系

2023-12-01 09:14:58

ReactFiber

2022-11-10 16:55:41

ReactFiber

2010-06-17 19:07:12

UML對(duì)象

2023-03-21 08:31:13

ReconcilerFiber架構(gòu)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产日韩一区二区三区 | 国产在线一区二区 | 欧美激情一区二区三区 | www.一区二区三区 | 亚洲精品视频一区 | 中文字幕精品一区二区三区精品 | 精品国产91亚洲一区二区三区www | 中文字幕第二区 | 91精品久久久久久久久中文字幕 | 欧美国产日韩精品 | 激情自拍偷拍 | 欧美精品在线播放 | 久久青草av | 日韩手机视频 | 国产精品一区二区福利视频 | 狠狠狠| 免费高潮视频95在线观看网站 | 精品国产一区二区三区免费 | 国产成人精品久久二区二区91 | 成人亚洲在线 | 精品国产乱码久久久 | ww亚洲ww亚在线观看 | 久久黄色 | 无码日韩精品一区二区免费 | 国产精品久久久久久婷婷天堂 | 日韩欧美在线视频 | 亚洲福利一区二区 | 一本久久a久久精品亚洲 | 国产精品福利网 | 国产高清视频一区二区 | 午夜久久久久久久久久一区二区 | 日韩亚洲视频 | 欧美视频免费在线 | 欧美精品欧美精品系列 | 中文字幕在线免费 | 动漫www.被爆羞羞av44 | 岛国av在线免费观看 | 91亚洲精选| 欧美一级免费 | 亚洲欧美国产精品久久 | 国产精品国产三级国产aⅴ中文 |