mcpField
R
react-patterns

react-patterns

github.com/shipshitdev開発3989 回インストール1 日前に更新
リポジトリ

react-patterns について

react-patterns は、React アプリケーションを開発する人向けのスキルです。コンポーネント、フック、状態管理、性能、エラー処理、TypeScript、テストの実践パターンをまとめています。

主な機能

  1. 01コンポーネントの種類と責務の選択
  2. 02フックと状態管理パターンの適用
  3. 03React 19 の新しいフックの利用
  4. 04複合コンポーネントによる UI 構成
  5. 05計測後のパフォーマンス最適化
  6. 06エラー、型、テストへの対応

活用シーン

  1. 01React 機能のコンポーネント構成
  2. 02状態の範囲と保存方法の選定
  3. 03性能改善やエラー復旧方針のレビュー
  4. 04コンポーネントとユーザーフローのテスト計画

インストール

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

$npx skills add https://github.com/shipshitdev/skills --skill react-patterns

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

同梱ファイルplugin.json

詳細

React のパターン

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

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

2. フックのパターン

フックを切り出すタイミング
パターン切り出すタイミング
useLocalStorage同じストレージロジックが必要なとき
useDebounce複数の値にデバウンスが必要なとき
useFetch同じフェッチパターンを繰り返し使うとき
useFormフォームの状態が複雑なとき
フックのルール
  • フックはトップレベルでのみ呼び出します
  • レンダリングのたびに同じ順序で呼び出します
  • カスタムフックの名前は「use」で始めます
  • アンマウント時にエフェクトをクリーンアップします

3. 状態管理の選択

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

4. React 19 のパターン

新しいフック
フック目的
useActionStateフォーム送信の状態
useOptimistic楽観的な UI 更新
useレンダリング中にリソースを読み取る
コンパイラーのメリット
  • メモ化を自動化します
  • 手動での useMemo/useCallback が減ります
  • 純粋なコンポーネントに集中できます

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

複合コンポーネント
  • 親がコンテキストを提供します
  • 子がコンテキストを利用します
  • スロットベースの柔軟なコンポジションを実現します
  • 例:タブ、アコーディオン、ドロップダウン
Render Props とフックの比較
用途優先するもの
再利用可能なロジックカスタムフック
レンダリングの柔軟性Render Props
横断的な処理高階コンポーネント

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

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

7. エラー処理

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

8. TypeScript のパターン

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

9. テストの原則

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

10. アンチパターン

❌ しないこと✅ すること
Props を深くバケツリレーするContext を使います
巨大なコンポーネント小さく分割します
何にでも useEffect を使うサーバーコンポーネントを使います
時期尚早な最適化まずプロファイリングします
key にインデックスを使う安定した一意の ID を使います

覚えておきましょう: React の要点はコンポジションです。小さく作り、慎重に組み合わせましょう。

使用するタイミング

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

制限事項

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

コメント