mcpField
R
react-patterns

react-patterns

github.com/davila7開発33.0k502 回インストール今日更新
リポジトリ

react-patterns について

React 開発者向けのパターンガイドです。コンポーネント設計、フック、状態管理、性能、エラー処理、TypeScript、テストを扱い、React 19 のフックやアプリの複雑さに応じた選択肢も示します。

主な機能

  1. 01コンポーネント設計と合成パターン
  2. 02カスタムフックと状態管理
  3. 03React 19 のフックパターン
  4. 04性能のプロファイリングと的を絞った最適化
  5. 05エラー処理と復旧
  6. 06TypeScript とテストの原則

活用シーン

  1. 01コンポーネントの責務と状態範囲を設計
  2. 02状態管理の方式を選択
  3. 03React の描画性能問題を診断
  4. 04エラー処理とテスト戦略を設計

インストール

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

$npx skills add https://github.com/davila7/claude-code-templates --skill react-patterns

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

詳細

React パターン

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


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

コンポーネントの種類
種類用途状態
Serverデータ取得、静的表示なし
ClientインタラクションuseState、effects
PresentationalUI 表示props のみ
Containerロジック/状態管理多くの状態
設計ルール
  • 1 コンポーネントに責務は 1 つ
  • props は下へ、イベントは上へ
  • 継承よりコンポジション
  • 小さく焦点の絞られたコンポーネントを優先する

2. Hook パターン

Hook を切り出すタイミング
パターン切り出すタイミング
useLocalStorage同じストレージ処理が必要なとき
useDebounceデバウンスされる値が複数あるとき
useFetch同じフェッチパターンが繰り返されるとき
useForm複雑なフォームの状態があるとき
Hook のルール
  • Hook はトップレベルでのみ呼び出す
  • 毎回のレンダリングで同じ順序で呼び出す
  • カスタム Hook の名前は "use" で始める
  • アンマウント時に effect をクリーンアップする

3. 状態管理の選択

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

4. React 19 のパターン

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

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

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

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

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

7. エラーハンドリング

Error Boundary の使い方
スコープ配置
アプリ全体ルートレベル
機能ルート/機能レベル
コンポーネント問題が起きやすいコンポーネントの周囲
エラーからの回復
  • フォールバック UI を表示する
  • エラーをログに記録する
  • 再試行のオプションを提供する
  • ユーザーのデータを保持する

8. TypeScript のパターン

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

9. テストの原則

レベル対象
Unit純粋関数、Hook
Integrationコンポーネントの振る舞い
E2Eユーザーのフロー
テストの優先順位
  • ユーザーから見える振る舞い
  • エッジケース
  • エラー状態
  • アクセシビリティ

10. アンチパターン

❌ やらないこと✅ 推奨
深いプロップドリリングContext を使う
巨大なコンポーネント小さく分割する
すべてに useEffect を使うServer コンポーネントを使う
早すぎる最適化まずプロファイルする
インデックスを key にする安定した一意の ID を使う

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

コメント