导航导航精选精选
  • React18源码
  • 第一课:搭建项目架构
  • 第二课:实现JSX
  • 第三课:实现Reconciler架构
  • 第四课:如何触发更新
  • 第五课:初探mount流程
  • 第六课:初探ReactDOM
  • 第七课:初探FC与实现第二种调试方式
    • 前端导航
    • 在线工具
    • 常用APP
    • 终端工具
    • 博客
      • Git
      • html+css+js
      • Linux
      • Node
      • React
      • TS
      • 多端应用
      • 数据库
      • 服务器
      • 编辑器
      • 网络
      • 调试抓包
    • 技巧与学习
      • 扩展
      • 指南
    • React18源码
    • 第一课:搭建项目架构
    • 第二课:实现JSX
    • 第三课:实现Reconciler架构
    • 第四课:如何触发更新
    • 第五课:初探mount流程
    • 第六课:初探ReactDOM
      • commit阶段的3个子阶段
      • 打包ReactDOM
    • 第七课:初探FC与实现第二种调试方式
  • 精选

  • commit阶段的3个子阶段
  • 打包ReactDOM
react
第六课:初探ReactDOM

本节课代码地址 (opens in a new tab)

react内部3个阶段:

  • schedule阶段

  • render阶段(beginWork completeWork)

  • commit阶段(commitWork)

commit阶段的3个子阶段

  • beforeMutation阶段

  • mutation阶段

  • layout阶段

当前commit阶段要执行的任务:

  • fiber树的切换

  • 执行Placement对应操作

需要注意的问题,考虑如下JSX,如果span含有flag,该如何找到它:

<App>  
 <div>  
  <span>只因</span>  
 </div>  
</App>  

打包ReactDOM

需要注意的点:

  • 兼容原版React的导出

  • 处理hostConfig的指向

第五课:初探mount流程第七课:初探FC与实现第二种调试方式

wiki