fiber lanes
一句话结论:每个 Fiber 都会记录
lanes/childLanes来表示“自己/子树有哪些待处理工作”,这样 root 在遍历时能快速跳过无更新的子树,提高调度与渲染效率。
1. 常见字段(概念)
fiber.lanes:该 Fiber 自身上直接挂着的更新 lanesfiber.childLanes:该 Fiber 子树上存在的更新 lanes(从子节点冒泡汇总)
2. 它在遍历中如何生效
- beginWork 前可以判断:本次 renderLanes 是否与
lanes/childLanes相交 - 不相交 → 这棵子树对本轮无关,直接跳过(bailout)
3. 与“插队”的关系
- 新的高优先级 lane 冒泡后,root 会选择新的 renderLanes
- 旧的低优先级工作可能被暂停/重做,但跳过机制可减少无效遍历