原理
重点:
算法
位运算
通过位移的方式, 定义一些枚举常量
const A = 1 << 0 // 0b00000001
const B = 1 << 1 // 0b00000010
const C = 1 << 2 // 0b00000100
js增加属性:ABC = A | B | C
删除属性:AB = ABC & ~C
判断属性:AB & B === B
应用: 优先级管理 lanes
包结构
react
提供定义 react 组件(ReactElement)的必要函数react-dom
渲染器之一react-reconciler
react 得以运行的核心包,管理应用状态的输入和结果的输出scheduler
控制由react-reconciler送入的回调函数的执行时机
两大循环
任务调度循环
是以二叉堆为数据结构, 循环执行堆的顶点, 直到堆被清空。不关心这个任务具体,具体任务其实就是执行回调函数performSyncWorkOnRoot或performConcurrentWorkOnRoot
fiber构造循环
是以树为数据结构, 从上至下执行深度优先遍历
fiber构造循环是任务调度循环中的任务(task)的一部分. 它们是从属关系, 每个任务都会重新构造一个fiber树.