react
源码, 基于react@17.0.2
(尽可能跟随 react 版本的升级, 持续更新). 用大量配图的方式, 致力于将react
原理表述清楚.
react 宏观结构
, react 工作循环
, react 启动模式
, react fiber原理
, react hook原理
, react 合成事件
等核心内容.react
,react-dom
开发 web 应用有实践经验.react
内在作用原理.本系列暂时只跟踪稳定版本的变动.
react
仓库代码改动比较频繁, 在写作过程中, 如果伴随小版本的发布, 文章中的源码链接会以写作当天的最新小版本
为基准.
react@17.0.0
作为主版本升级, 相较于 16.x 版本, 在使用层面基本维持不变, 在源码层面需要关注的重大的变动如下
重大变动 | 所属板块 | 官方解释 |
---|---|---|
重构Fiber.expirationTime 并引入Fiber.lanes |
react-reconciler |
Initial Lanes implementation #18796 |
事件代理节点从 document 变成 rootNode, 取消合成事件的缓存池等 | legacy-events(被移除) , react-dom/events |
changes-to-event-delegation |
react@17.0.1
相较于主版本v17.0.0
做了一个点的优化, 改动了 1 个文件, 修复 ie11 兼容问题, 同时提升 v8 内部的执行性能.
react@17.0.2
相较于v17.0.1
, 改动集中于Scheduler
包, 主干逻辑没有变动, 只与调度性能统计相关.