mcpField
R
react18-lifecycle-patterns

react18-lifecycle-patterns

github.com/github开发40.5k743 次安装1 天前更新
代码仓库

关于 react18-lifecycle-patterns

用于将三个不安全的 React 类组件生命周期方法迁移到兼容 React 18.3.1 模式的参考技能。它先按行为分类并指向对应指南,同时提醒不要把 UNSAFE_ 前缀当作永久修复。

主要功能

  1. 01迁移前识别生命周期行为
  2. 02将方法映射到替代模式
  3. 03查阅各方法的迁移参考
  4. 04避免永久依赖 UNSAFE_ 前缀

适用场景

  1. 01迁移 componentWillMount 逻辑
  2. 02替换 componentWillReceiveProps 行为
  3. 03更新 componentWillUpdate 模式
  4. 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.md
componentWillReceiveProps.md
componentWillUpdate.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