react 为什么要重构架构

前言

重构架构是react16及16后的版本对15以前的版本的架构进行了重构,

React 15 的架构可以分为两层:

  • Reconciler(协调器) 负责找出变化的组件,以及标识出如何更新。
  • Renderer(渲染器) 负责将变化的组件渲染到页面上。

React 15 使用的是栈调和器,它是递归、同步的方式。这样的设计可以使组件更新简单、快速,有一些缺点,例如:

  • 更新一旦开始,中途就无法中断,可能会造成浏览器渲染卡顿。
  • 无法实现异步、分片、优先级等高级功能。
  • 无法兼容新的浏览器特性,如 requestIdleCallback 和 requestAnimationFrame。

React 16 的架构可以分为三层:

  • Scheduler(调度器),负责调度任务的优先级,高优任务优先进入
  • Reconciler(协调器)。Reconciler 负责找出变化的组件,以及标识出如何更新。
  • Renderer(渲染器), 负责将变化的组件渲染到页面上。¹²

React 16 使用的是全新的 Fiber 调和器,它是循环、异步、可中断的方式。这样的设计可以使组件更新更加灵活、高效带来了一些优点:

  • 可以在浏览器每一帧的时间中,预留一些时间给 JS 线程,避免长时间占用主线程,造成卡顿。
  • 可以实现异步、分片、优先级等高级功能,如 Concurrent Mode(并发模式)、Suspense(悬停)、Lazy Loading(懒加载)等。
  • 可以兼容新的浏览器特性,如 requestIdleCallback 和 requestAnimationFrame。

总结

重构 React 的架构的主要原因是为了提高 UI 的渲染性能和用户体验,解决 CPU 和 I/O 的瓶颈,实现异步、可中断、可恢复、可优先级的更新流程,以及支持一些新的特性,如 Time Slice(时间分片)、Suspense(悬停)、Lazy Loading(懒加载)、Concurrent Mode(并发模式),所以react15递归、同步的更新执行是不支持的,重构就必须来了

相关推荐
Patrick_Wilson1 小时前
从一次 Safari 白屏,聊聊 CDN 外置 React 的坑与前端监控盲区
前端·react.js·cdn
还有多久拿退休金3 小时前
AI 写了代码,谁替你"试毒"?
前端·架构·ai编程
Slice_cy5 小时前
Docker 体系化完整知识框架(从构建到运行到编排)
架构
hbugs0015 小时前
PNETLab vs EVE-NG Pro 流量洞察功能底层架构技术白皮书
网络·架构·eve-ng·bpf·流量洞察
冷de猫6 小时前
AI API 网关的四层架构与代码实现:以 Aegisy 为例
人工智能·架构·大模型·ai编程·ai网关·api代理·多模型接入
我是大卫6 小时前
【图】React源码解析-从底层数据结构、调度器、闭包原理到源码设计模式,深挖useState的全部核心机制
react.js·源码
未来之窗软件服务6 小时前
基层诉求直达和缓解高层压力高效沟通智能建议架构—东方仙盟
架构·仙盟创梦ide·东方仙盟·阿雪技术观
米开朗积德6 小时前
React native开发iOS与Android兼容适配常见问题
react native·react.js
小牛itbull6 小时前
【译】为什么我使用 React 重构了 WordPress?
前端·react.js·重构
用户298698530146 小时前
在 React 中拆分 Excel 文件:从工作表到行列的实践
javascript·react.js·excel