mcpField
R
react-specialist

react-specialist

github.com/404kidwiz開発135 回インストール
リポジトリ

react-specialist について

react-specialistは、React 18+やNext.jsを使う開発者向けの開発スキルです。モダンなレンダリング、状態管理、パフォーマンス改善、再利用可能なコンポーネントパターンを扱います。

主な機能

  1. 01React 18+の並行レンダリング
  2. 02Next.jsのサーバーコンポーネントとSSR
  3. 03ZustandとTanStack Queryによる状態管理
  4. 04再利用可能なフックとコンポーネントパターン
  5. 05パフォーマンス最適化とテスト

活用シーン

  1. 01React 18+アプリの構築
  2. 02Next.jsのサーバーコンポーネントとSSRの実装
  3. 03APIデータとクライアントデータの状態管理選定
  4. 04レンダリングやバンドルの性能問題の調査

インストール

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

$npx skills add https://github.com/404kidwiz/claude-supercode-skills --skill react-specialist

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

同梱ファイルEXAMPLES.mdREFERENCE.md

詳細

React スペシャリスト

目的

React 18 以降、Next.js エコシステム、モダンな React パターンを専門とする、React 開発のエキスパートです。フック、並行機能、Zustand のような状態管理ソリューション、TanStack Query によるデータ取得を活用し、高性能でスケーラブルな React アプリケーションを構築します。

使用する場面

  • モダンなパターン(React 18 以降)を使用した React アプリケーションの構築
  • Next.js での Server Components と SSR の実装
  • Zustand、TanStack Query、その他のソリューションを使用した状態管理
  • React のパフォーマンスとレンダリングの最適化
  • 再利用可能なコンポーネントライブラリとフックの作成
  • TypeScript と包括的な型安全性を活用した開発

クイックスタート

このスキルを呼び出す場面:

  • モダンなパターン(React 18 以降)を使用した React アプリケーションの構築
  • Next.js での Server Components と SSR の実装
  • Zustand、TanStack Query、その他のソリューションを使用した状態管理
  • React のパフォーマンスとレンダリングの最適化
  • 再利用可能なコンポーネントライブラリとフックの作成

呼び出さない場面:

  • サーバーサイドのみのロジックが必要な場合(代わりに backend-developer を使用)
  • シンプルな静的 HTML/CSS ページ(React は不要)
  • モバイルのみの開発(React Native を使用する mobile-developer を使用)
  • フロントエンドを伴わない Node.js API 開発(backend-developer を使用)

主な機能

React 18 以降の高度な機能
  • 並行レンダリング:Suspense、useTransition、useDeferredValue を使いこなす
  • 自動バッチ処理:自動バッチ処理の改善を理解し、活用する
  • Server Components:Next.js App Router と React Server Components のパターン
  • Client Components:'use client' ディレクティブの戦略的な使用とハイドレーション戦略
  • StartTransition:緊急性の低い状態変更による UI 更新の最適化
  • ストリーミング SSR:React 18 のストリーミングによる段階的なレンダリングの実装
モダンな React パターン
  • カスタムフック:再利用可能で組み合わせ可能なフックのロジックを構築
  • 複合コンポーネント:高度なコンポーネント合成パターン
  • レンダープロップ:高度なレンダープロップパターンと関数を子として使うパターン
  • 高階コンポーネント:横断的関心事に対応するモダンな HOC パターン
  • Context API:パフォーマンス最適化を伴う効率的なコンテキストの使用
  • エラーバウンダリー:高度なエラー処理と復旧戦略
状態管理ソリューション
  • Zustand:TypeScript 連携に対応した軽量な状態管理
  • TanStack Query:キャッシュ、再取得、楽観的更新に対応したサーバー状態管理
  • Jotai:きめ細かなリアクティビティを備えたアトミックな状態管理
  • Valtio:リアクティブな更新に対応したプロキシベースの状態管理
  • React Query:データ取得、キャッシュ、同期
  • ローカル状態:ローカル状態とグローバル状態を戦略的に使い分ける判断

判断フレームワーク

主な判断ツリー:状態管理の選択

ここから始めます: どのような種類の状態ですか?

├─ Server state (API data)?
│   ├─ Use TanStack Query (React Query)
│   │   Pros: Caching, auto-refetching, optimistic updates
│   │   Cost: 13KB gzipped
│   │   Use when: Fetching data from APIs
│   │
│   └─ Or SWR (Vercel)
│       Pros: Lighter (4KB), similar features
│       Cons: Less feature-complete than React Query
│       Use when: Bundle size critical
│
├─ Client state (UI state)?
│   ├─ Simple (1-2 components) → useState/useReducer
│   │   Pros: Built-in, no dependencies
│   │   Cons: Prop drilling for deep trees
│   │
│   ├─ Global (app-wide) → Zustand
│   │   Pros: Simple API, 1KB, no boilerplate
│   │   Cons: No time-travel debugging
│   │   Use when: Simple global state needs
│   │
│   ├─ Complex (nested, computed) → Jotai or Valtio
│   │   Jotai: Atomic state (like Recoil but lighter)
│   │   Valtio: Proxy-based (mutable-looking API)
│   │
│   └─ Enterprise (DevTools, middleware) → Redux Toolkit
│       Pros: DevTools, middleware, established patterns
│       Cons: Verbose, 40KB+ with middleware
│       Use when: Need audit log, time-travel debugging
│
└─ Form state?
    ├─ Simple (<5 fields) → useState + validation
    ├─ Complex → React Hook Form
    │   Pros: Performance (uncontrolled), 25KB
    │   Cons: Learning curve
    │
    └─ With schema validation → React Hook Form + Zod
        Full type safety + runtime validation
パフォーマンス最適化の判断マトリクス
問題症状解決策期待される改善
初期読み込みが遅いFCP >2s、LCP >2.5sコード分割(React.lazy)40~60% 高速化
再レンダリングの集中コンポーネントが毎秒 10 回以上レンダリングされるReact.memo、useMemo80% 以上削減
バンドルサイズが大きいJS バンドルが >500KBツリーシェイキング、動的インポート30~50% 縮小
リストのレンダリングが遅い1000 件を超えるリストで遅延が発生react-window/react-virtualized90% 以上高速化
計算コストが高い操作時に CPU 使用率が急上昇するuseMemo、Web ワーカー50~70% 高速化
プロップのバケツリレープロップが 5 階層以上を経由するContext API または状態管理ライブラリコードを整理
コンポーネントパターンの選択
ユースケースパターン複雑さ柔軟性例
シンプルなUIProps + children低低<Button>Click</Button>
設定Props オブジェクト低中<Button config={{...}} />
複雑なコンポジション複合コンポーネント中高<Tabs><Tab /></Tabs>
レンダリングの柔軟性Render props中非常に高<List render={...} />
ヘッドレスUIカスタムフック高最大useSelect()
ポリモーフィックas prop中高<Text as="h1" />
危険信号 → シニア React 開発者にエスカレーション

次の場合は作業を中断してエスカレーションしてください:

  • サーバーサイドレンダリングが必要な場合(通常の React ではなく Next.js を使用してください)
  • パフォーマンス要件がレンダリング時間 <16ms(60 FPS アニメーション)の場合
  • カスタム仮想 DOM の実装を検討している場合(ほぼ常に誤りです)
  • コンポーネントツリーの深さが 20 レベルを超える場合(アーキテクチャ上の問題です)
  • ブラウザータブ間の状態同期が必要な場合(複雑なパターンです)

ベストプラクティス

コンポーネント設計
  • 単一責任:各コンポーネントには、明確な目的を 1 つだけ持たせます
  • 継承よりコンポジション:再利用性を高めるためにコンポジションを使用します
  • Props インターフェース:明確で型付けされたコンポーネント API を設計します
  • アクセシビリティ:最初から WCAG への準拠を実装します
  • エラーバウンダリー:コンポーネント境界でエラーを適切に処理します
状態管理
  • 状態の局所化:状態はできるだけ使用箇所の近くに保ちます
  • 関心の分離:サーバー状態とクライアント状態を区別します
  • 楽観的更新:楽観的更新によって体感パフォーマンスを向上させます
  • キャッシュ戦略:UX を向上させるためにインテリジェントなキャッシュを実装します
  • 状態の正規化:複雑なデータ構造には正規化された状態を使用します
パフォーマンスパターン
  • メモ化:React.memo、useMemo、useCallback を戦略的に使用します
  • コード分割:大きなコンポーネントには動的インポートを実装します
  • 仮想化:長いリストには react-window または react-virtualized を使用します
  • 画像の最適化:遅延読み込みとレスポンシブ画像を実装します
  • バンドル分析:バンドルサイズを定期的に分析して最適化します
テスト戦略
  • コンポーネントテスト:React Testing Library を使ってコンポーネントを単独でテストします
  • 統合テスト:コンポーネント間のやり取りとデータフローをテストします
  • E2E テスト:ユーザージャーニーのテストには Playwright または Cypress を使用します
  • ビジュアルリグレッション:Chromatic などのツールで UI の変更を検出します
  • パフォーマンステスト:コンポーネントのパフォーマンスを監視してテストします

統合パターン

react-specialist ↔ typescript-pro
  • 引き継ぎ:TypeScript の型 → 型安全な props を備えた React コンポーネント
  • 連携:API データとコンポーネント props に共通の型を使用します
  • 依存関係:React は TypeScript によるメリットを大きく受けます
react-specialist ↔ nextjs-developer
  • 引き継ぎ:React コンポーネント → Next.js のページ/レイアウト
  • 連携:サーバーコンポーネントとクライアントコンポーネントを区別します
  • ツール:UI には React、ルーティング/SSR には Next.js を使用します
react-specialist ↔ frontend-ui-ux-engineer
  • 引き継ぎ:React がロジックを担当 → Frontend-UI-UX がスタイリングを担当
  • 連携:コンポーネント API、デザインシステムの統合
  • 共同責任:アクセシビリティ、レスポンシブデザイン

追加リソース

  • 詳細な技術リファレンス:REFERENCE.md を参照してください
  • コード例とパターン:EXAMPLES.md を参照してください

コメント