vercel-composition-patterns について
React 開発者向けに、再利用可能なコンポーネントの設計パターンをまとめたスキルです。合成、共有状態、React 19 API を扱います。
主な機能
- 01boolean prop の増加回避
- 02複合コンポーネント構成
- 03Provider による状態管理
- 04明示的なバリアントと children 合成
- 05React 19 API の指針
活用シーン
- 01boolean prop が多いコンポーネントのリファクタリング
- 02再利用可能なコンポーネント API の設計
- 03コンポーネント構成のレビュー
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ supabase/ supabase --skill vercel-composition-patternsインストール後、Claude Code で/vercel-composition-patternsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
rules/patterns-explicit-variants.mdarchitecture-avoid-boolean-props.mdstate-decouple-implementation.mdarchitecture-compound-components.mdstate-context-interface.mdpatterns-children-over-render-props.mdstate-lift-state.mdreact19-no-forwardref.md詳細
React のコンポジションパターン
柔軟で保守しやすい React コンポーネントを構築するためのコンポジションパターンです。コンパウンドコンポーネント、状態の引き上げ、内部のコンポジションを活用し、ブール値のプロパティが増えすぎるのを避けます。これらのパターンにより、コードベースの規模が大きくなっても、人間と AI エージェントの両方が扱いやすくなります。
適用する場面
以下の場合は、これらのガイドラインを参照してください。
- ブール値のプロパティが多数あるコンポーネントをリファクタリングするとき
- 再利用可能なコンポーネントライブラリを構築するとき
- 柔軟なコンポーネント API を設計するとき
- コンポーネントアーキテクチャをレビューするとき
- コンパウンドコンポーネントやコンテキストプロバイダーを扱うとき
優先度別のルールカテゴリ
| 優先度 | カテゴリ | 影響 | プレフィックス |
|---|---|---|---|
| 1 | コンポーネントアーキテクチャ | HIGH | architecture- |
| 2 | 状態管理 | MEDIUM | state- |
| 3 | 実装パターン | MEDIUM | patterns- |
| 4 | React 19 API | MEDIUM | react19- |
クイックリファレンス
1. コンポーネントアーキテクチャ(HIGH)
architecture-avoid-boolean-props- 動作のカスタマイズにブール値のプロパティを追加せず、コンポジションを使用しますarchitecture-compound-components- 複雑なコンポーネントを、共有コンテキストを使って構成します
2. 状態管理(MEDIUM)
state-decouple-implementation- 状態の管理方法を把握するのはプロバイダーだけにしますstate-context-interface- 依存性注入のために、状態、アクション、メタ情報を含む汎用インターフェースを定義しますstate-lift-state- 兄弟コンポーネントから状態にアクセスできるよう、状態をプロバイダーコンポーネントに移動します
3. 実装パターン(MEDIUM)
patterns-explicit-variants- ブール値によるモードの代わりに、明示的なバリアントコンポーネントを作成しますpatterns-children-over-render-props-renderXプロパティの代わりに、コンポジションには children を使用します
4. React 19 API(MEDIUM)
⚠️ React 19+ のみ。 React 18 以前を使用している場合は、これらのパターンをスキップしてください。
react19-no-forwardref-forwardRefは使用せず、useContext()の代わりにuse()を使用します
使用方法
詳しい説明とコード例については、個々のルールファイルをお読みください。
rules/architecture-avoid-boolean-props.md
rules/state-context-interface.md
各ルールファイルには、以下が含まれています。
- 重要である理由の簡単な説明
- 説明付きの誤ったコード例
- 説明付きの正しいコード例
- 補足情報と参考資料
コンパイル済みドキュメント全体
すべてのルールを展開した完全なガイドについては、rules/ 内のファイルをお読みください
コメント
Markdown 対応