[react] React Fiber它的目的是解决什么问题?

Posted 前端小歌谣

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[react] React Fiber它的目的是解决什么问题?相关的知识,希望对你有一定的参考价值。

[react] React Fiber它的目的是解决什么问题?

我个人的理解:
React 15 的 StackReconciler 方案由于递归不可中断问题,如果 Diff 时间过长(JS计算时间),会造成页面 UI 的无响应(比如输入框)的表现,vdom 无法应用到 dom 中。

为了解决这个问题,React 16 实现了新的基于 requestIdleCallback 的调度器(因为 requestIdleCallback 兼容性和稳定性问题,自己实现了 polyfill),通过任务优先级的思想,在高优先级任务进入的时候,中断 reconciler。

为了适配这种新的调度器,推出了 FiberReconciler,将原来的树形结构(vdom)转换成 Fiber 链表的形式(child/sibling/return),整个 Fiber 的遍历是基于循环而非递归,可以随时中断。

更加核心的是,基于 Fiber 的链表结构,对于后续(React 17 lane 架构)的异步渲染和 (可能存在的)worker 计算都有非常好的应用基础

   个人简介

我是歌谣,欢迎和大家一起交流前后端知识。放弃很容易,
但坚持一定很酷。欢迎大家一起讨论





主目录

与歌谣一起通关前端面试题

以上是关于[react] React Fiber它的目的是解决什么问题?的主要内容,如果未能解决你的问题,请参考以下文章

读懂React原理之调和与Fiber

读懂React原理之调和与Fiber

读懂React原理之调和与Fiber

读懂React原理之调和与Fiber

读懂React原理之调和与Fiber

React系列——React Fiber 架构介绍资料汇总(翻译+中文资料)