React专场——大厂高频面试题

237 阅读1分钟

www.bilibili.com/video/BV1Wy…

React Fiber设计理念

考点:

  1. 对React Fiber原理的了解
  2. 对于新技术的敏感程度,求知欲

目的:

为了使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();