mcpField
R
react-patterns

react-patterns

github.com/sickn33開発48.8k1.2k 回インストール今日更新
リポジトリ

react-patterns について

本番アプリケーションを構築する開発者向けの React スキルです。コンポーネント設計、フック、状態管理、パフォーマンス、エラー処理、TypeScript、テストの指針をまとめています。

主な機能

  1. 01コンポーネントと合成パターン
  2. 02フックの抽出と使用規則
  3. 03状態管理の選択
  4. 04React 19 フックの指針
  5. 05パフォーマンスとプロファイリング
  6. 06エラー処理とテストの原則

活用シーン

  1. 01React コンポーネント構成の設計
  2. 02状態の範囲と管理手段の選択
  3. 03パフォーマンスのボトルネック調査
  4. 04エラー処理とテストの計画

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/sickn33/agentic-awesome-skills --skill react-patterns

インストール後、Claude Code で/react-patternsを入力して読み込まれたか確認します。

詳細

React パターン

本番環境に対応した React アプリケーションを構築するための原則です。


1. コンポーネント設計の原則

コンポーネントの種類
種類用途状態
Serverデータ取得、静的コンテンツなし
Clientインタラクティブな処理useState、エフェクト
PresentationalUI 表示Props のみ
Containerロジック/状態多くの状態
設計ルール
  • コンポーネントごとに責務を1つにする
  • Props は下へ、イベントは上へ
  • 継承よりコンポジションを優先する
  • 小さく、役割を絞ったコンポーネントを優先する

2. フックのパターン

フックを抽出するタイミング
パターン抽出するタイミング
useLocalStorage同じストレージロジックが必要な場合
useDebounce複数の値にデバウンス処理が必要な場合
useFetch同じフェッチパターンが繰り返される場合
useFormフォームの状態が複雑な場合
フックのルール
  • フックはトップレベルでのみ呼び出してください。React の use API は例外で、コンポーネントまたはフック内のループ/条件分岐で呼び出せます(try/catch 内では呼び出せません)。use を参照してください
  • レンダーごとに同じ順序で呼び出す
  • カスタムフックの名前は「use」から始める
  • アンマウント時にエフェクトをクリーンアップする

3. 状態管理の選択

複雑さ解決策
シンプルuseState、useReducer
ローカルで共有Context
サーバーの状態React Query、SWR
複雑なグローバル状態Zustand、Redux Toolkit
状態の配置
スコープ配置先
単一コンポーネントuseState
親子間状態を親に持ち上げる
サブツリーContext
アプリ全体グローバルストア

4. React 19 のパターン

新しいフック
フック目的
useActionStateフォーム送信の状態
useOptimistic楽観的 UI 更新
useレンダー中にリソースを読み取る
コンパイラのメリット

これらの効果が得られるのは、React Compiler をインストールし、ビルドで有効にした場合です。React 19 にアップグレードするだけで自動的に適用されるわけではありません。インストール を参照してください。

  • 自動メモ化
  • useMemo/useCallback を手動で使う頻度を削減
  • 純粋なコンポーネントに注力

5. コンポジションのパターン

複合コンポーネント
  • 親がコンテキストを提供する
  • 子がコンテキストを利用する
  • スロットベースの柔軟なコンポジション
  • 例:Tabs、Accordion、Dropdown
Render Props とフックの比較
ユースケース優先するもの
再利用可能なロジックカスタムフック
レンダーの柔軟性Render Props
横断的な処理高階コンポーネント

6. パフォーマンスの原則

最適化するタイミング
状況対応
レンダーが遅いまずプロファイルする
大規模なリスト仮想化する
コストの高い計算useMemo
安定したコールバックuseCallback
最適化の順序
  1. 実際に遅いかどうかを確認する
  2. DevTools でプロファイルする
  3. ボトルネックを特定する
  4. 対象を絞って修正する

7. エラー処理

エラーバウンダリーの使用
スコープ配置
アプリ全体ルートレベル
機能ルート/機能レベル
コンポーネントリスクのあるコンポーネントの周囲
エラーからの復旧
  • フォールバック UI を表示する
  • エラーを記録する
  • 再試行のオプションを提供する
  • ユーザーデータを保持する

8. TypeScript のパターン

Props の型付け
パターン用途
Interfaceコンポーネントの Props
Typeユニオン、複雑な型
Generic再利用可能なコンポーネント
よく使う型
必要なもの型
子要素ReactNode
イベントハンドラーMouseEventHandler
RefRefObject

9. テストの原則

レベル対象
単体純粋関数、フック
統合コンポーネントの動作
E2Eユーザーフロー
テストの優先事項
  • ユーザーから見える動作
  • エッジケース
  • エラー状態
  • アクセシビリティ

10. アンチパターン

❌ しないこと✅ すること
深い階層への Props の受け渡しContext を使う
巨大なコンポーネント小さく分割する
何にでも useEffect を使うレンダー中に値を導出する。エフェクトは外部との同期に限定し、サーバーコンポーネントは対応するフレームワークでのみ使う
時期尚早な最適化まずプロファイルする
キーにインデックスを使う安定した一意の ID を使う

11. ファイル構成

画像

プロジェクトのファイル構成をよりよく理解するための参考として、この画像を使用してください。


覚えておいてください: React はコンポジションが基本です。小さく作り、慎重に組み合わせましょう。

使用する場面

このスキルは、概要で説明されているワークフローまたはアクションを実行する場合に適用できます。

例

ユーザーのリクエスト:

このタスクでは @react-patterns を使用してください:モダンな React のパターンと原則。

制限事項

  • このスキルは、タスクが上記の説明範囲に明確に該当する場合にのみ使用してください。
  • 出力を、環境固有の検証、テスト、または専門家によるレビューの代わりとして扱わないでください。
  • 必要な入力、権限、安全上の境界、または成功基準が不足している場合は、停止して確認を求めてください。

コメント