SKILL.md
$28
What it does
Correct migration
Reference
Async side effect triggered by prop change (fetch, cancel)
componentDidUpdate
→ componentWillReceiveProps.md
Pure state derivation from new props (no side effects)
getDerivedStateFromProps
→ componentWillReceiveProps.md
componentWillUpdate - what does it do?
What it does
Correct migration
Reference
Reads the DOM before update (scroll, size, position)
getSnapshotBeforeUpdate
Cancels requests / runs effects before update
componentDidUpdate with prev comparison
The UNSAFE_ Prefix Rule
**Never use UNSAFE_componentWillMount, UNSAFE_componentWillReceiveProps, or UNSAFE_componentWillUpdate as a permanent fix.**
Prefixing suppresses the React 18.3.1 warning but does NOT:
- Fix concurrent mode safety issues
- Prepare the codebase for React 19 (where these are removed, with or without the prefix)
- Fix the underlying semantic problem the migration is meant to address
The UNSAFE_ prefix is only appropriate as a temporary hold while scheduling the real migration sprint. Mark any UNSAFE_ prefix additions with:
// TODO: React 19 will remove this. Migrate before React 19 upgrade.
// UNSAFE_ prefix added temporarily - replace with componentDidMount / getDerivedStateFromProps / etc.
Reference Files
Read the full reference file for the lifecycle method you are migrating:
- **
references/componentWillMount.md** - 3 cases with full before/after code
- **
references/componentWillReceiveProps.md** - getDerivedStateFromProps trap warnings, full examples
- **
references/componentWillUpdate.md** - getSnapshotBeforeUpdate + componentDidUpdate pairing
Read the relevant file before writing any migration code.