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递归、同步的更新执行是不支持的,重构就必须来了

相关推荐
奈斯先生Vector9 小时前
告别工具碎片化:基于 Nano Banana 全模态 AI 聚合架构搭建“文本-图像-视频”自动化协同生产线
运维·数据库·人工智能·架构·自动化·aigc·音视频
小码哥哥15 小时前
如何评价“构建企业级 AI 知识库“这一趋势?从技术架构到落地实践的完整分析
人工智能·架构
先吃饱再说15 小时前
编写一个颜色选择器之后,我理解了 React 工程化的三层架构
react.js·前端框架·前端工程化
先吃饱再说15 小时前
别说你懂 useEffect:从底层机制到生命周期管理,这篇全讲透了
react.js·前端框架
先吃饱再说15 小时前
从“传事件”到“只传值”:React + TypeScript 组件 Props 设计的两次进化
react.js·前端框架·前端工程化
Vince的修炼之路18 小时前
RAG 文档处理技术深度分析:PDF 解析、表格提取、OCR 识别全链路
人工智能·架构
文慧的科技江湖256120 小时前
绿电赋能算力,算电协同重构能源新生态 - 慧知EMS能源管理系统(2)
重构·能源·微电网·虚拟电厂·零碳园区·算电协同·绿电
童谣120 小时前
越华环保:美丽蓝天项目申报方案数字化研判架构设计与实践
架构
Dr.kangder20 小时前
嵌入式软件程序分析技术:原理、方法与实战
servlet·架构·嵌入式·dsp开发
蓝斯4971 天前
一碰即传,重构跨设备文件分享体验
开发语言·python·重构