优先级机制
React的两套优先级: lane模型以及Schedule
lane模型的优先级: 交互 > 动画 > 数据加载 更多的关注于任务的优先级,而不是任务的执行时间;
Schedule的优先级: 任务的执行时间 更多的关注于任务的执行时间,而不是任务的优先级;它更关注任务的执行时间,而不是任务的优先级;
二者是互补的: lane负责优先级,调度器负责时间;
流程
- React 根据交互类型确定更新优先级(Lane)
- 将 Lane 转换为 Scheduler 优先级
- Scheduler 根据优先级和当前帧时间决定任务执行时机
- 浏览器渲染间隙执行任务(通过 requestIdleCallback 类似机制)
lane模型
31个二进制位,低位优先;
拥有批处理机制,优先级位段相近的任务会被合并;
优势:
- 并发更新
- 批量处理