React Server Components
概要
React Server Components(RSC)の実装パターンとNext.js App Routerにおけるベストプラクティスを提供する専門スキル。サーバーコンポーネントとクライアントコンポーネントの責務分離、データフェッチの最適化、Suspenseとストリーミングの活用を支援します。
ワークフロー
Phase 1: アーキテクチャ分析
目的: RSCアーキテクチャの適用範囲と境界を定義する
アクション:
references/basics.mdでRSCの基本概念を確認references/server-client-boundaries.mdでコンポーネント境界を理解- プロジェクトの要件とRSCの適合性を評価
Task: agents/analyze-architecture.md を参照
Phase 2: コンポーネント設計
目的: Server ComponentsとClient Componentsの適切な分離を設計する
アクション:
references/server-client-boundaries.mdで境界設計パターンを確認references/composition-patterns.mdでコンポーネント構成を検討- テンプレートをベースに実装
Task: agents/design-components.md を参照
Phase 3: データフェッチ最適化
目的: RSCの並列データフェッチとストリーミングを最適化する
アクション:
references/data-fetching-patterns.mdで最適なパターンを選択- キャッシュ戦略を検討
- Suspense境界を適切に配置
Task: agents/optimize-data-fetching.md を参照
Phase 4: 検証と記録
目的: 実装の検証と実行記録の保存
アクション:
- バンドルサイズを検証
- コンポーネント境界の妥当性を確認
scripts/log_usage.mjsを実行して記録を残す
Task: agents/validate-implementation.md を参照
Task仕様ナビ
| Task | 起動タイミング | 入力 | 出力 |
|---|---|---|---|
| analyze-architecture | Phase 1開始時 | プロジェクト要件 | アーキテクチャ方針 |
| design-components | Phase 2開始時 | アーキテクチャ方針 | コンポーネント設計 |
| optimize-data-fetching | Phase 3開始時 | コンポーネント設計 | データフェッチ実装 |
| validate-implementation | Phase 4開始時 | 実装コード | 検証済み実装 |
詳細仕様: 各Taskの詳細は agents/ ディレクトリを参照
ベストプラクティス
すべきこと
- Server Componentsをデフォルトとし、必要な場合のみClient Components(
'use client')を使用する - データフェッチはできるだけサーバー側で行い、並列フェッチを活用する
- Suspense境界を適切に配置し、ユーザー体験を最適化する
async/awaitを直接Server Components内で使用する(useEffect不要)- クライアント側のJavaScriptを最小化し、バンドルサイズを削減する
references/composition-patterns.mdのパターンに従って、props drilling を回避する- キャッシュ戦略(
cache(),revalidate)を適切に設定する references/server-client-boundaries.mdで境界設計の原則を確認する
避けるべきこと
- Server Components内でクライアント専用API(useState, useEffect等)を使用する
- Client Components内で直接データベース接続やAPIキーを扱う
- 不要にClient Componentsを使用し、クライアントバンドルを肥大化させる
- Suspense境界なしで非同期処理を行い、ウォーターフォールを引き起こす
- Server Componentsをprops経由でClient Componentsに渡す(children経由で渡すべき)
'use client'ディレクティブを親コンポーネントに配置し、子までクライアント化する- fetch結果を適切にキャッシュせず、同じリクエストを重複実行する
- エラーハンドリングを省略し、エラー時のUXを悪化させる
- テスト戦略を立てずに実装を進める
- 既存のPages Router パターンをそのまま適用する
リソース参照
references/(詳細知識)
| リソース | パス | 読込条件 |
|---|---|---|
| 基礎 | references/basics.md | RSC初学者、基本理解 |
| 境界定義 | references/server-client-boundaries.md | 境界設計時 |
| 構成パターン | references/composition-patterns.md | コンポーネント構成時 |
| データフェッチ | references/data-fetching-patterns.md | データ取得設計時 |
scripts/(決定論的処理)
| スクリプト | 機能 |
|---|---|
scripts/log_usage.mjs |
スキル使用履歴の記録 |
assets/(テンプレート)
| アセット | 用途 |
|---|---|
assets/server-component-template.md |
Server Componentテンプレート |
変更履歴
| Version | Date | Changes |
|---|---|---|
| 3.1.0 | 2026-01-02 | references/整理、18-skills.md仕様準拠 |
| 3.0.0 | 2026-01-02 | agents/追加(4エージェント体制確立) |
| 1.0.0 | 2025-12-31 | 初版 |