React Fiber

React Fiber 本质上是一种基于双链表的数据结构和协调算法的结合体,它是 React 16.x 版本后对渲染机制的核心重构,它的主要目标是解决大型应用中渲染卡顿的问题,实现更高效的任务调度和更流畅的用户体验。

React的概念

  • Virtual DOM 层,描述页面长什么样。
  • Reconciler 层,负责调用组件生命周期方法,进行 Diff 运算等。
  • Renderer 层,根据不同的平台,渲染出相应的页面,比较常见的是 ReactDOM 和
    ReactNative。

为什么需要React Fiber

Reconciler

React 使用的算法将一棵树与另一棵树进行比较,”找不同”的过程就叫做 reconciliation 。
实际上,在每次更改时重新渲染整个应用程序仅适用于最琐碎的应用程序;在现实世界的应用程
序中,它在性能方面的成本高得令人望而却步。 React 进行了优化,可以在保持出色性能的同
时创建整个应用程序重新渲染的外观。
Reconciliation 是通常理解为“虚拟 DOM”背后的算法,”当你渲染一个 React 应用程序时,一个
描述应用程序的节点树被生成并保存在内存中。然后这个树被刷新到渲染环境——例如,在浏览
器应用程序的情况下,它被转换为一组 DOM 操作。当应用程序更新时(通常通过 setState),
会生成一棵新树。新树与之前的树进行比较,以计算需要哪些操作来更新呈现的应用程序

Fiber Reconciler的执行过程

Fiber在执行过程,会分为两个阶段
alt text

Reconciliation Phase

这些在react fiber中可能执行多次

Commit Phase

这些只能执行一次

总结

参考文档