React 18:渲染入口主链路

React 18:渲染入口主链路(简化)

用户(调用 API) ReactDOM FiberRoot / HostRoot Fiber updateQueue / lanes Scheduler 调度入口 createRoot(container) createContainer(ConcurrentRoot) createFiberRoot + initializeUpdateQueue markContainerAsRoot + listenToAllSupportedEvents 返回 root(ReactDOMRoot) root.render(element) updateContainer(element, root) requestEventTime() + requestUpdateLane() createUpdate(eventTime, lane) + update.payload={element} enqueueUpdate(HostRootFiber, update, lane) scheduleUpdateOnFiber(root, hostFiber, lane, eventTime) ensureRootIsScheduled(root, eventTime) 进入并发/同步 render(Day1 Block2)
Author

Felix Tao

Posted on

2022-04-10

Updated on

2022-04-18

Licensed under