类组件维护篇:从实例到迁移
前四章先用现代函数组件建立状态和同步模型。此时回到类组件,可以比较“实例持有当前值”与“每次函数渲染的快照”,而不必重新学一遍props、事件和不可变更新。React19仍支持类;本篇在同一个现代运行环境里维护类,再用独立实验比较历史入口行为。
这是一条连贯的维护阅读链,位于第五章错误边界第一次使用class之前。先掌握实例与队列,再追踪资源的创建、参数变化与撤销;随后讨论更新优化、组合协议和错误恢复,最后才做渐进迁移与版本升级。需要JavaScript类语法时,第一节给出明确前置。
阅读顺序
- 类实例、this 与 setState 队列
- 挂载、更新与卸载:资源归谁所有
- 更新跳过、PureComponent 与提交前快照
- 类中的 Context、render props 与 HOC
- 错误边界:隔离范围、记录与恢复
- 渐进迁移:按状态与资源职责拆解
- React 17、18、19:版本、入口与行为演进
运行与观察
普通例子沿用全书Vite项目,逐个替换src/App.jsx,保留StrictMode并关闭React Compiler对手动优化实验的影响。第七节在独立Node目录安装明确版本,使用模拟DOM只比较提交轨迹,不把它当成浏览器性能测试。练习答案集中在本篇答案,首次完整对象都在正文。
学完应能修改一次按prop步长更新、撤销切换前的订阅、复现并修复浅比较造成的旧UI,以及在边界外保留草稿的同时恢复出错卡片。迁移时按业务状态和资源分组,不将生命周期名称与Effect一一替换。
下一站是第五章:并发更新与等待边界。此时再读lazy与错误边界,类的语法、状态与恢复协议已有明确前置。