React Scheduler 的核心目标是实现任务的优先级调度和时间切片,让 React 能够在主线程空闲时分批处理任务,避免长时间阻塞页面,提高响应性和流畅度。这是 React 并发特性的基础。
本文基于 scheduler@0.26.0 版本进行源码解读,围绕以下几点进行展开:
- 优先级调度
- 时间切片
任务
在 React Scheduler
中, “任务”(Task)是一个被调度系统追踪、管理和延迟执行的最小单位的工作,它代表着一个未来需要执行的函数,这些函数会在 React
渲染、状态更新等过程中作为调度单元被系统统一管理,比如: