美文网首页
React 18 源代码学习笔记 6 workLoopSync

React 18 源代码学习笔记 6 workLoopSync

作者: 吴摩西 | 来源:发表于2022-09-10 21:10 被阅读0次

workLoopSync

  // Neither props nor legacy context changes. Check if there's a pending
  // update or context change.
  // An update was scheduled on this fiber, but there are no new props
  // nor legacy context. Set this to false. If an update queue or context
  // consumer produces a changed value, it will set this to true. Otherwise,
  // the component will assume the children have not changed and bail out.
  didReceiveUpdate = false;

updateHostRoot

React 根据 fiber 不同 tag 执行对应对应的初始化/更新操作,fiberRoot 下的直接子节点就是 HostRoot (3),需要渲染的根结点是从这个 fiber{tag=HostRoot}updateQueue 中读取的,生成的 update 实在 ReactDOM.render 是传递的第一个参数,生成的 update 结构如下。其中 payload.element 就是需要渲染的主要 React element 树。

Screen Shot 2022-09-05 at 20.50.07.png

这个结构是 render 初始时 enqueueUpdate 时放入到 concurrentQueues 中的,prepareFreshStack 时又从 concurrentQueues 取出放入到

相关文章

网友评论

      本文标题:React 18 源代码学习笔记 6 workLoopSync

      本文链接:https://www.haomeiwen.com/subject/ypapnrtx.html