当前位置: 首页 > article >正文

React 架构流程概览

React 架构流程概览

文章目录

    • React 架构流程概览
      • 启动React项目
      • 流程分析
        • 各部分解析
          • 调度器
          • 协调器
          • 渲染器
      • 总结


启动React项目

启动项目,并打开 Performance 面板


流程分析

首先找到入口函数
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gs4llhlI-1678591505665)(/Users/abby/Library/Application Support/typora-user-images/image-20230312102802774.png)]
整个 render 下面的调用栈就是首屏渲染要执行的流程。

render 过程大致分为三部分:分别对应 调度器、协调器、渲染器:
在这里插入图片描述

各部分解析

调度器

第一部分:
在这里插入图片描述
调度器:创建整个应用根节点fiberRootNode和当前应用根节点 rootFiber,接下来就会进入首屏渲染。


协调器

进入首屏渲染,开始创建 workInProgress Fiber 树。
创建 workInProgress 的流程类似于递归过程,分为递阶段(beginWork)和归阶段(completeWork)
在这里插入图片描述

整个 renderRootSync 方法的执行就是 协调器的执行过程


渲染器

渲染器的工作是:将变化的节点渲染到视图上

渲染器:又称为 commit 阶段,分为三个子阶段:渲染到视图之前,渲染到视图中,渲染到视图后
在这里插入图片描述


总结

  • 调度器:创建整个应用根节点fiberRootNode和当前应用根节点 rootFiber,接下来就会进入首屏渲染。
  • 协调器 :render 阶段(递与归)
  • 渲染器:commit 阶段,分为三个阶段:渲染到视图之前,渲染到视图中,渲染到视图后
  • 创建 workInProgressFiber 的流程也类比为递归的过程,也分为 递阶段和归阶段,递阶段就是执行的 beginWork,归阶段就是执行的 completeWork
  • renderRootSync 函数执行的过程就是协调器的执行,协调器的执行被称为 render 阶段,render 阶段开始于 renderRootSync 函数(commitRoot 是渲染器需要执行的函数)
  • render 阶段使用遍历来实现了可中断的递归,其中递归可以分为 递阶段和归 阶段
  • render 阶段不会执行具体的 DOM 操作,具体的 DOM 操作是在 commit 阶段执行的,render 阶段 要做的就是为需要的节点打上标记(deletion或者placement)
  • render 阶段就是 采用深度优先遍历的方式,依次执行 fiber 节点的 beginwork 和 completework

PS:

  1. React 版本是17版本
  2. 工具:控制面板的 Performance

http://www.kler.cn/a/624.html

相关文章:

  • Opencv项目实战:22 物体颜色识别并框选
  • Qt(c++)调用海康威视监控摄像头
  • 女神节告白代码
  • 【含源码】用python做游戏有多简单好玩
  • 【Linux】冯诺依曼体系结构
  • 数据分析自学路线
  • 华为OD机试 - 插队(Java JS Python)
  • elasticsearch全解 (待续)
  • Linux基础命令大全(上)
  • 测试工作的开展思路
  • 求职复盘:干了四年外包出来,面试5次全挂
  • 【Linux】进程优先级前后台理解
  • 76.qt qml-QianWindow开源炫酷界面框架(支持白色暗黑渐变自定义控件均以适配)
  • 制作INCA和CANape通用的A2L
  • 2023还有人不知道kubernetes?| 初步理解kubernetes
  • 经典文献阅读之--Dynamic-VINS(动态点滤除VINS)
  • Navicat 图形化界面工具
  • 【Linux】-- 进程控制
  • BigInteger 和BigDecimal
  • opencv学习(二)图像阈值和平滑处理