[react] React Fiber它的目的是解决什么问题?
生活随笔
收集整理的這篇文章主要介紹了
[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它的目的是解决什么问题?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: git learn
- 下一篇: postsql字符串字段转数字用法