React Fiber设计理念
考点:
- 对React Fiber原理的了解
- 对于新技术的敏感程度,求知欲
目的:
为了使react渲染的过程中可以被中断,可以将控制权交还给浏览器,可以让位给高优先级的任务,浏览器空闲后再恢复渲染。
对于计算量比较大的js计算或者dom计算,就不会显得特别卡顿,而是一帧一帧的有规律的执行任务
const tasks = []; // 10个任务
function run() {
let task;
while (task = task.shift()) {
execute(task); // 10s
}
}
generator函数
const tasks = []; // 10个任务
function * run() {
let task;
while(task=task.shift()) {
if(hasHighPriorityTask()) {
yield; // generator函数通过yield来终止执行
}
execute(task); // 10s
}
}
const iterator = run();
iterator.next();