runzhq / my_record

0 stars 0 forks source link

React-fiber #7

Open runzhq opened 6 years ago

runzhq commented 6 years ago

fiber

出现的目的:为react加入调度(策略)的思想,被调度的任务单元即为fiber

依赖于浏览器的 requestIdleCallbackrequestAnimationFrame两个API。

  1. requestIdleCallback回调的执行的前提条件是当前浏览器处于空闲状态,属于低优先级任务。第二个配置参数timeout。
  2. requestAnimationFrame的回调会在每一帧确定执行,属于高优先级任务。

FPS:frams per second(每秒传输帧数)
推荐的做法是在requestAnimationFrame里面做dom的修改,可以在requestIdleCallback里面构建Document Fragment,然后在下一帧的requestAnimationFrame里面应用Fragment。

fiber是一个虚拟栈帧

一个 fiber 是一个包含了组件及其输入输出的 JavaScript 对象。 一个 fiber 对应于一个栈帧,但是它也对应与一个组件的实例。