定义
- 可中断的,基于优先级的渲染模式
为什么
- 因js 本身是单线程语言,避免阻塞主线程,依赖于时间分片算法,实现
- 补: 也为了能主动控制高优先级任务。
核心问题
时间分片算法 优先级队列算法 补: 双缓冲技术 ?
怎么处理
- 默认开启
- useTransition
核心原理
- Q VDOM--》Fiber 链表
- A vdom 本身不具备任何相邻节点信息,所以先转成fiber
- Q 并发 or 并行
- A 并发是一段时间内,多任务一块执行,并行是同一时刻,同时执行
- Q react 并发指的具体什么意思,任务交替执行
- Q fiber 节点执行的过程中,中断后,怎么恢复
- A 将被打断的任务,放入schedule 调度队列里面,再次取出执行
- Q 那fiber中断条件是什么
- A 有且仅有一个就是时间分片,优先级,影响的是调度队列里的,可以把高优先级预先在队列里,每个时间片就会优先去处理高优先级任务
- Q 优先级机制是什么怎么做的
- A 通过lane模型设计了31种用二进制数值表示的优先级,性能更好
- Q react怎么去判断是否要进行时间分片
- A 依据lan模型,如果某次setState 内部给任务标记对应开启时间分片的lan 那就是开启了并发
- Q 具体并发API 有哪些 useTransition ,useDeferredValue等
- A 可以把低优先级任务进行包裹