国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

深入FiberRoot

hoohack / 2426人閱讀

摘要:節(jié)點(diǎn)的鏈表交互的線程上次交互的線程的對(duì)象進(jìn)行中的交互的線程的對(duì)象

1. 介紹

整個(gè)應(yīng)用的起點(diǎn)

包含應(yīng)用掛載的目標(biāo)起點(diǎn)

記錄整個(gè)應(yīng)用更新過程的各種信息

2.相關(guān)函數(shù)及內(nèi)容
export function createContainer(
  containerInfo: Container,
  isConcurrent: boolean,
  hydrate: boolean,
): OpaqueRoot {
  return createFiberRoot(containerInfo, isConcurrent, hydrate);
}

createContainer中我們返回了createFiberRoot函數(shù)的執(zhí)行結(jié)果,
然就在ReactFiberRoot中我們調(diào)用了createFiberRoot,,它返回一個(gè)root對(duì)象:

root = ({
      current: uninitializedFiber,
        // 代表當(dāng)前對(duì)應(yīng)的fiber,這里是未初始化的fiber
      containerInfo: containerInfo,
        // 代表容器的節(jié)點(diǎn)
      pendingChildren: null,
        //只有在持久化更新的平臺(tái)會(huì)用到,在react-Dom中不會(huì)被用到
      earliestPendingTime: NoWork,
         //最老的正在進(jìn)行中的任務(wù),這里初始化都為Nowork為0,最低優(yōu)先級(jí)
      latestPendingTime: NoWork,
          //最新的正在進(jìn)行中的任務(wù)
      earliestSuspendedTime: NoWork,
          //最老的被掛起的任務(wù)
      latestSuspendedTime: NoWork,
          //最新的被掛起的任務(wù)
      latestPingedTime: NoWork,
            
      pingCache: null,

      didError: false,
       //標(biāo)記整個(gè)應(yīng)用在渲染的過程中是否有錯(cuò)誤
      pendingCommitExpirationTime: NoWork,
      //正在提交的任務(wù)的ExpirationTime,也就是優(yōu)先級(jí)
      finishedWork: null,
      //在render階段已經(jīng)完成了的任務(wù),在commit階段只會(huì)執(zhí)行finishedWork的任務(wù)
      timeoutHandle: noTimeout,
      //用來清理還沒有被觸發(fā)的計(jì)時(shí)器
      context: null,
      //頂層的context對(duì)象,只用在調(diào)用“renderSubTreeIntoContainer”的時(shí)候在有用
      pendingContext: null,
      hydrate,
      //應(yīng)用是否要和原來的dom節(jié)點(diǎn)進(jìn)行合并
      nextExpirationTimeToWorkOn: NoWork,
      //記錄下一次將要進(jìn)行的對(duì)應(yīng)的優(yōu)先級(jí)的任務(wù)
      expirationTime: NoWork,
      //當(dāng)前的優(yōu)先級(jí)的任務(wù)
      firstBatch: null,
      
      nextScheduledRoot: null,
        //鏈表的結(jié)構(gòu),兩次react-Domrender渲染的。。節(jié)點(diǎn)的鏈表
      interactionThreadID: unstable_getThreadID(),
      // 交互的線程id
      memoizedInteractions: new Set(),
      //上次交互的線程id的Set對(duì)象
      pendingInteractionMap: new Map(),
      //進(jìn)行中的交互的線程的Map對(duì)象
    }: FiberRoot);

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/103228.html

相關(guān)文章

  • react解析: render的FiberRoot(三)

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

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

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

    iKcamp 評(píng)論0 收藏0
  • 剖析 React 源碼:render 流程(一)

    摘要:大家可以看到是構(gòu)造函數(shù)構(gòu)造出來的,并且內(nèi)部有一個(gè)對(duì)象,這個(gè)對(duì)象是本文接下來要重點(diǎn)介紹的對(duì)象,接下來我們就來一窺究竟吧。在構(gòu)造函數(shù)內(nèi)部就進(jìn)行了一步操作,那就是創(chuàng)建了一個(gè)對(duì)象,并掛載到了上。下一篇文章還是流程相關(guān)的內(nèi)容。這是我的剖析 React 源碼的第二篇文章,如果你沒有閱讀過之前的文章,請(qǐng)務(wù)必先閱讀一下 第一篇文章 中提到的一些注意事項(xiàng),能幫助你更好地閱讀源碼。 文章相關(guān)資料 React ...

    hiYoHoo 評(píng)論0 收藏0
  • ReactDom.render分析

    摘要:先檢驗(yàn)是否存在不存在則執(zhí)行傳入,后的函數(shù)創(chuàng)建一個(gè)。方法更新執(zhí)行方法,這個(gè)方法最終調(diào)用和并返回,這些進(jìn)行調(diào)度算法和進(jìn)行優(yōu)先級(jí)判斷 1.步驟 1.創(chuàng)建ReactRoot 2.創(chuàng)建FiberRoot和FiberRoot 3.創(chuàng)建更新 2. render方法: render( element: React$Element, container: DOMContainer, ...

    cjie 評(píng)論0 收藏0
  • React源碼解析(一)

    摘要:是整個(gè)應(yīng)用的起點(diǎn),包含應(yīng)用掛載的目標(biāo)節(jié)點(diǎn),記錄整個(gè)應(yīng)用更新過程的各種信息是一個(gè)對(duì)象是當(dāng)前應(yīng)用對(duì)應(yīng)的對(duì)象,即。每個(gè)節(jié)點(diǎn)會(huì)對(duì)應(yīng)一個(gè)對(duì)象,記錄節(jié)點(diǎn)的各種狀態(tài),比如,,這些狀態(tài)更新完成后會(huì)被更新,是所對(duì)應(yīng)節(jié)點(diǎn)的實(shí)際的實(shí)例,比如對(duì)應(yīng)一個(gè)就是一個(gè)。 ReactDom.render做了什么 首先react代碼分為react和react-dom兩個(gè)包,react中代碼量特別的少,基本就是API的定義,...

    zzbo 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<