关于 react18-lifecycle-patterns
用于将三个不安全的 React 类组件生命周期方法迁移到兼容 React 18.3.1 模式的参考技能。它先按行为分类并指向对应指南,同时提醒不要把 UNSAFE_ 前缀当作永久修复。
主要功能
- 01迁移前识别生命周期行为
- 02将方法映射到替代模式
- 03查阅各方法的迁移参考
- 04避免永久依赖 UNSAFE_ 前缀
适用场景
- 01迁移 componentWillMount 逻辑
- 02替换 componentWillReceiveProps 行为
- 03更新 componentWillUpdate 模式
- 04为 React 19 提前规划迁移
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ github/ awesome-copilot --skill react18-lifecycle-patterns安装后在 Claude Code 中输入/react18-lifecycle-patterns确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/componentWillMount.mdcomponentWillReceiveProps.mdcomponentWillUpdate.md详细介绍
React 18 生命周期模式
将三个不安全的类组件生命周期方法迁移到符合 React 18.3.1 规范的模式的参考。
快速决策指南
在迁移任何生命周期方法之前,先确定该方法所做事情的语义类别。类别错误 = 迁移错误。下表将引导你找到正确的参考文件。
componentWillMount - 它做什么?
| 它做什么 | 正确的迁移 | 参考 |
|---|---|---|
设置初始状态(this.setState(...)) | 移至 constructor | → componentWillMount.md |
| 运行副作用(fetch、订阅、DOM) | 移至 componentDidMount | → componentWillMount.md |
| 从 props 派生初始状态 | 使用 props 移至 constructor | → componentWillMount.md |
componentWillReceiveProps - 它做什么?
| 它做什么 | 正确的迁移 | 参考 |
|---|---|---|
| 由 prop 变化触发的异步副作用(fetch、cancel) | componentDidUpdate | → componentWillReceiveProps.md |
| 从新 props 进行纯状态派生(无副作用) | getDerivedStateFromProps | → componentWillReceiveProps.md |
componentWillUpdate - 它做什么?
| 它做什么 | 正确的迁移 | 参考 |
|---|---|---|
| 在更新前读取 DOM(滚动、尺寸、位置) | getSnapshotBeforeUpdate | → componentWillUpdate.md |
| 取消请求 / 在更新前运行副作用 | 带 prev 比较的 componentDidUpdate | → componentWillUpdate.md |
UNSAFE_ 前缀规则
切勿将 UNSAFE_componentWillMount、UNSAFE_componentWillReceiveProps 或 UNSAFE_componentWillUpdate 用作永久修复方案。
添加前缀会抑制 React 18.3.1 的警告,但并不会:
- 修复并发模式的安全性问题
- 使代码库为 React 19 做好准备(在这些版本中,无论是否带前缀,这些方法都会被移除)
- 修复迁移本应解决的底层语义问题
UNSAFE_ 前缀仅适合作为在安排真正的迁移冲刺期间的临时保留措施。为任何新增的 UNSAFE_ 前缀标记:
// TODO: React 19 will remove this. Migrate before React 19 upgrade.
// UNSAFE_ prefix added temporarily - replace with componentDidMount / getDerivedStateFromProps / etc.
参考文件
阅读你正在迁移的生命周期方法的完整参考文件:
references/componentWillMount.md- 3 个案例,包含完整的迁移前后代码references/componentWillReceiveProps.md- getDerivedStateFromProps 陷阱警告、完整示例references/componentWillUpdate.md- getSnapshotBeforeUpdate + componentDidUpdate 配对
在编写任何迁移代码之前,请先阅读相关文件。
评论
支持 Markdown