亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

React源碼解析(一)

zzbo / 1602人閱讀

摘要:是整個應用的起點,包含應用掛載的目標節(jié)點,記錄整個應用更新過程的各種信息是一個對象是當前應用對應的對象,即。每個節(jié)點會對應一個對象,記錄節(jié)點的各種狀態(tài),比如,,這些狀態(tài)更新完成后會被更新,是所對應節(jié)點的實際的實例,比如對應一個就是一個。

ReactDom.render做了什么

首先react代碼分為react和react-dom兩個包,react中代碼量特別的少,基本就是API的定義,調用react-dom中的實現(xiàn)。調用的第一個API就是:

  ReactDom.render(App,
)

這個方法做的事情其實很簡單,就是創(chuàng)建了根節(jié)點,并做了應用更新前的一系列準備工作,流程是這樣的:創(chuàng)建reactRoot—————>創(chuàng)建FiberRoot————>創(chuàng)建RootFiber,Update———>把update加到更新隊列Fiber.updateQueue中;
雖然這個過程很簡單,但是創(chuàng)建的每一個對象都很重要。
1.reactRoot: 其實沒太多實際的意義,被創(chuàng)建以后,創(chuàng)建了FeberRoot對象。
2.FiberRoot: 是整個應用的起點,包含應用掛載的目標節(jié)點,記錄整個應用更新過程的各種信息FiberRoot.currents是一個Fiber對象,是當前應用對應的Fiber對象,即Root Fiber。

3.Fiber:每個reactElement節(jié)點會對應一個Fiber對象,記錄節(jié)點的各種狀態(tài),比如state,props,這些狀態(tài)更新完成后Fiber.stateNode會被更新,F(xiàn)iber.stateNode是Fiber所對應節(jié)點的實際的實例,比如fiber對應一個classComponent,Fiber.stateNode就是一個Class。Fiber串聯(lián)整個應用形成樹結構。Fiber樹是單向鏈表結構連接起來的。主要靠以下幾個字段:

// 指向他在Fiber節(jié)點樹中的`parent`,用來在處理完這個節(jié)點之后向上返回
      return: Fiber | null,
    
      // 單鏈表樹結構
      // 指向自己的第一個子節(jié)點
      child: Fiber | null,
      // 指向自己的兄弟結構
      // 兄弟節(jié)點的return指向同一個父節(jié)點
      sibling: Fiber | null,
  

3:Update對象,用于記錄組件狀態(tài)的改變,由ReactRoot創(chuàng)建,存放于Fiber.updateQueue中。
updateQueue依然為單向列表結構,依靠update.next連接起來。updateQueue會根據(jù)所有update計算出新的state。

文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://www.ezyhdfw.cn/yun/106180.html

相關文章

  • react解析: render的FiberRoot(三)

    摘要:查看創(chuàng)建核心函數(shù)源碼行調用函數(shù)創(chuàng)建是相關,不用管源碼行這個指的是調用創(chuàng)建,下面我們將會說到對象源碼行源碼行函數(shù)中,首先創(chuàng)建了一個,然后又創(chuàng)建了一個,它們兩者還是相互引用。 感謝 yck: 剖析 React 源碼解析,本篇文章是在讀完他的文章的基礎上,將他的文章進行拆解和加工,加入我自己的一下理解和例子,便于大家理解。覺得yck寫的真的很棒 。React 版本為 16.8.6,關于源碼的...

    muddyway 評論0 收藏0
  • React源碼解析ReactDOM.render()

    摘要:一更新的方式有三種渲染接下來,我們就來看下源碼二作用在提供的里渲染一個元素,并返回對該組件的引用常見的用法是這個官網(wǎng)網(wǎng)址源碼服務端使用方法渲染節(jié)點是讓服務端盡可能復用節(jié)點,提高性能元素容器應用渲染結束后,調用的函數(shù)錯誤抓取方法本質是返回 showImg(https://segmentfault.com/img/remote/1460000020064414?w=1240&h=641);...

    iKcamp 評論0 收藏0
  • Luy 1.0 :React-like輪子的誕生

    摘要:司徒正美的一款了不起的化方案,支持到。行代碼內實現(xiàn)一個胡子大哈實現(xiàn)的作品其實就是的了源碼學習個人文章源碼學習個人文章源碼學習個人文章源碼學習個人文章這幾片文章的作者都是司徒正美,全面的解析和官方的對比。 前言 在過去的一個多月中,為了能夠更深入的學習,使用React,了解React內部算法,數(shù)據(jù)結構,我自己,從零開始寫了一個玩具框架。 截止今日,終于可以發(fā)布第一個版本,因為就在昨天,我...

    codecook 評論0 收藏0
  • 基于React版本16.4的源碼解析

    摘要:本次分析的源碼采用的是的版本核心接口提供了處理的工具集我們先來看看做了什么事情即當為空時,返回不為時調用,最終返回一個數(shù)組這里說一下,可以通過傳入的對所有子組件進行操作,具體使用方法看下圖參數(shù)通過配合的例子把父組件的賦值給每個子組件我們先不 本次分析的源碼采用的是16.4.1的版本 核心接口 showImg(https://segmentfault.com/img/bVbeT9f?w=...

    joywek 評論0 收藏0
  • React源碼解析React.children.map()

    摘要:一例子看到一個有趣的現(xiàn)象,就是多層嵌套的數(shù)組經(jīng)過后,平鋪成了,接下來以該例解析二作用源碼進行基本的判斷和初始化后,調用該方法就是重命名了,即解析注意,該數(shù)組在里面滾了一圈后,會結果三作用的包裹器源碼第一次第二次如果字符串中有連續(xù)多個的話 showImg(https://segmentfault.com/img/remote/1460000019968077?w=1240&h=698);...

    kuangcaibao 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<