react18-lifecycle-patterns
React 18.3.1 を対象に、`componentWillMount`・`componentWillReceiveProps`・`componentWillUpdate` の3つの非推奨ライフサイクルメソッドについて、移行前後の正確なコードパターンを提供します。クラスコンポーネントのライフサイクル移行が必要な場合、`getDerivedStateFromProps` と `componentDidUpdate` の使い分け、`getSnapshotBeforeUpdate` の追加、または React 18 の `UNSAFE_` 警告の解消が必要な場面で使用してください。ライフサイクル移行コードを書く前に必ずこのスキルを参照し、記憶に頼った実装による典型的なミスをデシジョンツリーで防ぎます。
description の原文を見る
Provides exact before/after migration patterns for the three unsafe class component lifecycle methods - componentWillMount, componentWillReceiveProps, and componentWillUpdate - targeting React 18.3.1. Use this skill whenever a class component needs its lifecycle methods migrated, when deciding between getDerivedStateFromProps vs componentDidUpdate, when adding getSnapshotBeforeUpdate, or when fixing React 18 UNSAFE_ lifecycle warnings. Always use this skill before writing any lifecycle migration code - do not guess the pattern from memory, the decision trees here prevent the most common migration mistakes.
SKILL.md 本文
React 18 ライフサイクルパターン
React 18.3.1 への準拠に向けて、3つの unsafe なクラスコンポーネントライフサイクルメソッドを移行するためのリファレンス。
クイック判定ガイド
ライフサイクルメソッドを移行する前に、そのメソッドが何をしているかのセマンティックカテゴリを特定してください。カテゴリを間違えれば移行パターンも間違います。以下のテーブルで正しいリファレンスファイルにルーティングされます。
componentWillMount - 何をしていますか?
| 処理内容 | 正しい移行先 | リファレンス |
|---|---|---|
初期状態を設定する(this.setState(...)) | constructor へ移動 | → componentWillMount.md |
| 副作用を実行する(fetch、subscription、DOM操作) | componentDidMount へ移動 | → componentWillMount.md |
| props から初期状態を導出する | props 付き constructor へ移動 | → componentWillMount.md |
componentWillReceiveProps - 何をしていますか?
| 処理内容 | 正しい移行先 | リファレンス |
|---|---|---|
| props 変更により発火する非同期副作用(fetch、キャンセル) | componentDidUpdate | → componentWillReceiveProps.md |
| 新しい props からの純粋な状態導出(副作用なし) | getDerivedStateFromProps | → componentWillReceiveProps.md |
componentWillUpdate - 何をしていますか?
| 処理内容 | 正しい移行先 | リファレンス |
|---|---|---|
| 更新前にDOMを読む(スクロール、サイズ、位置) | getSnapshotBeforeUpdate | → componentWillUpdate.md |
| リクエストをキャンセルする / 更新前に副作用を実行する | 前の値と比較する componentDidUpdate | → componentWillUpdate.md |
UNSAFE_ プレフィックスルール
UNSAFE_componentWillMount、UNSAFE_componentWillReceiveProps、UNSAFE_componentWillUpdate を永続的な解決策として使用しないでください。
プレフィックスを付けるとReact 18.3.1 の警告は消えますが、以下を実現しません:
- concurrent mode の安全性問題を修正する
- React 19 への対応(これらはプレフィックスの有無を問わず削除される)
- その移行が解決すべき根本的なセマンティック問題を修正する
UNSAFE_ プレフィックスは実移行スプリントの予定をまでの一時的な対応としてのみ適切です。UNSAFE_ プレフィックス追加時に以下とともにマークしてください:
// TODO: React 19 はこれを削除します。React 19 アップグレード前に移行してください。
// UNSAFE_ プレフィックスを一時的に追加しました - componentDidMount / getDerivedStateFromProps / など に置き換えてください。
リファレンスファイル
移行するライフサイクルメソッドの完全なリファレンスファイルを読んでください:
references/componentWillMount.md- 3つのケースと完全な before/after コードreferences/componentWillReceiveProps.md- getDerivedStateFromProps トラップ警告、完全な例references/componentWillUpdate.md- getSnapshotBeforeUpdate + componentDidUpdate のペアリング
移行コードを書く前に関連するファイルを読んでください。
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- github
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/github/awesome-copilot / ライセンス: MIT
関連スキル
doubt-driven-development
重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。
apprun-skills
TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。
desloppify
コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。
debugging-and-error-recovery
テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。
test-driven-development
テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。
incremental-implementation
変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。