0x11 Scheduler

Review

  1. 2024-09-01 07:34

[!Summary] 基于 scheduler@0.23.0 scheduler/src/forks/Scheduler.js

一、Introduction #

unstable_scheduleCallback -> requestHostTimeout requestHostCallback

Priority

  1. ImmediatePriority
  2. UserBlockingPriority
  3. NormalPriority
  4. IdlePriority
  5. LowPriority

Lane #

Briefly, Lane is a 32-bit mask flag. Each bit represents a priority and a type of task. The closer the lane is to ‘0’, the higher the priority.

NameUsage
NoLaneDefault value
SyncLaneClickEvent, MouseMoveEvent, etc.
InputContinuousHydrationLaneUnknown. It is probably used for  Suspense and  hydrateroot
InputContinuousLaneMouseEnter, etc.
DefaultHydrationLaneUnknown. It is probably used for  Suspense and  hydrateroot
DefaultLaneIt is mainly used for initial rendering.
TransitionHydrationLaneUnknown. It is probably used for  Suspense and  hydrateroot
TransitionLane1~16It is used for startTransition. React uses a different number each time, and if React previously used TransitionLane16, it will use TransitionLane1.
RetryLane1~5React uses it when Suspense is still loading.
IdleHydrationLaneUnknown. It is probably used for  Suspense and  hydrateroot
IdleLaneUnknown
OffscreenLaneUnknown. It’s probably used for the offscreen feature, which is not implemented yet.

Reference #