Skip to main content

render

render

v18

  • 文件位置:

v17

  • 文件位置:packages/react-dom/src/client/ReactDOMLegacy.js

  • 源码:

    • 返回值,调用legacyRenderSubtreeIntoContainer

    • Q&A

      • Q:为啥返回值legacyRenderSubtreeIntoContainer需要判断是不是服务器端渲染?

        A:如果是服务器端渲染,需要复用传递的container内部的DOM元素,反之则不需要复用内部的DOM元素,而是删除container内部的内容。

isValidContainer

初始化FiberRoot——v17

legacyRenderSubtreeIntoContainer

  • 文件位置:packages/react-dom/src/client/ReactDOMLegacy.js

  • 源码

legacyCreateRootFromDOMContainer

  • 文件位置:packages/react-dom/src/client/ReactDOMLegacy.js

  • 源码:

createLegacyRoot

  • 文件位置:packages/react-dom/src/client/ReactDOMRoot.js

  • 源码:

    • LegacyRoot:请前往LegacyRoot了解详情

ReactDOMBlockingRoot

  • 文件位置:packages/react-dom/src/client/ReactDOMRoot.js

  • 源码:

createRootImpl

  • 文件位置:packages/react-dom/src/client/ReactDOMRoot.js

  • 源码

createContainer

  • 文件位置:packages/react-reconciler/src/ReactFiberReconciler.new.js

  • 源码:

createFiberRoot

  • 文件位置:packages/react-reconciler/src/ReactFiberRoot.new.js

  • 源码:

FiberRootNode

  • 文件位置:packages/react-reconciler/src/ReactFiberRoot.new.js

  • 源码:

initializeUpdateQueue

  • 文件位置:packages/react-reconciler/src/ReactUpdateQueue.new.js

  • 源码:

getPublicRootInstance

  • 文件位置:packages/react-reconciler/src/ReactFiberReconciler.old.js

  • 源码:

updateContainer

  • 文件位置:packages/react-reconciler/src/ReactFiberReconciler.old.js

  • 源码:

getContextForSubtree

  • 文件位置:packages/react-reconciler/src/ReactFiberReconciler.old.js

  • 源码:

enqueueUpdate

  • 文件位置:packages/react-reconciler/src/ReactUpdateQueue.old.js

  • 源码:

scheduleUpdateOnFiber

  • 文件位置:packages/react-reconciler/src/ReactFiberWorkLoop.old.js
  • 源码:

getCurrentPriorityLevel

  • 文件位置:packages/react-reconciler/src/SchedulerWithReactIntegration.old.js

  • 源码: