Fiber 架构
在引入 Fiber 架构之前,大型 React 应用更新一次会遍历大量虚拟 DOM,导致卡顿。React 重写了核心模块 Reconciler ,启用了 Fiber 架构。Fiber 架构是 React 在性能和功能上的重大升级,使其更适合构建大型、复杂的现代应用。
Fiber 架构是 React 16 引入的一种新的协调引擎,通过将渲染工作分解成可中断的小任务,实现了增量渲染和优先级调度。React 使用 Fiber 的主要原因包括:
- 提高响应性:确保用户交互流畅,避免卡顿。
- 支持并发渲染:为并发模式提供基础,提升性能。
- 优化渲染性 能:通过增量渲染和节点复用减少耗时。
- 支持新特性:如错误边界和 Suspense。
什么是 Fiber 架构?
Fiber 是 React 16 引入的一种新的协调(Reconciliation)引擎,它是 React 内部用来管理组件树的一种数据结构。简单来说,Fiber 是一个轻量级的、可中断的任务单元,每个 Fiber 节点对应 React 组件树中的一个节点(可以是组件、DOM 元素等)。这些 Fiber 节点通过链表结构连接,形成一棵 Fiber 树。
每个 Fiber 节点包含以下关键信息:
- 组件的类型(如函数组件或类组件)、props 和 state。
- 副作用标记(effect tag),用于标识需要执行的更新操作。
- 指向父节点、子节点和兄弟节点的指针。
Fiber 架构的核心特性是可中断和增量渲染。它将渲染工作分解成多个小任务单元,React 可以在必要时暂停这些任务,处理更高优先级的工作(如用户输入),然后再恢复渲染。这种机制大大提高了应用的响应性和流畅性。
为什么使用 Fiber 架构?
React 采用 Fiber 架构主要是为了解决旧架构的局限性,并带来性能和功能的提升。以下是具体原因: