Open runzhq opened 6 years ago
出现的目的:为react加入调度(策略)的思想,被调度的任务单元即为fiber。
依赖于浏览器的 requestIdleCallback和requestAnimationFrame两个API。
requestIdleCallback
requestAnimationFrame
FPS:frams per second(每秒传输帧数) 推荐的做法是在requestAnimationFrame里面做dom的修改,可以在requestIdleCallback里面构建Document Fragment,然后在下一帧的requestAnimationFrame里面应用Fragment。
一个 fiber 是一个包含了组件及其输入输出的 JavaScript 对象。 一个 fiber 对应于一个栈帧,但是它也对应与一个组件的实例。
fiber
出现的目的:为react加入调度(策略)的思想,被调度的任务单元即为fiber。
依赖于浏览器的
requestIdleCallback
和requestAnimationFrame
两个API。FPS:frams per second(每秒传输帧数)
推荐的做法是在requestAnimationFrame里面做dom的修改,可以在requestIdleCallback里面构建Document Fragment,然后在下一帧的requestAnimationFrame里面应用Fragment。
fiber是一个虚拟栈帧
一个 fiber 是一个包含了组件及其输入输出的 JavaScript 对象。 一个 fiber 对应于一个栈帧,但是它也对应与一个组件的实例。
描述了 fiber 构成的递归结构的树。render 方法返回多个子元素的情况
程序处理完当前 fiber 后应该返回 fiber。
pendingProps 是 fiber 执行开始时的属性集合,memoizedProps 则是 fiber 执行结束时的属性集合。
一个用来表示 fiber 代表的任务优先级的数字