mcpField
V
vercel-react-best-practices

vercel-react-best-practices

github.com/mavscui開発19362 回インストール34 週間前に更新
リポジトリ

vercel-react-best-practices について

React と Next.js の性能改善に関する、Vercel が管理するガイドです。開発、レビュー、リファクタリングに使える 45 のルールを 8 分野に分け、影響度順に掲載しています。

主な機能

  1. 018 分野にわたる 45 のルール
  2. 02影響度に基づくルールの優先順位
  3. 03非同期処理のウォーターフォールを削減
  4. 04バンドルとサーバー性能を最適化
  5. 05データ取得とレンダリングを改善

活用シーン

  1. 01React コンポーネントや Next.js ページの作成
  2. 02コードの性能問題のレビュー
  3. 03既存の React または Next.js コードのリファクタリング
  4. 04バンドルサイズや読み込み時間の改善

インストール

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

$npx skills add https://github.com/mavscui/agent-skills-hunter --skill vercel-react-best-practices

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

詳細

Vercel React ベストプラクティス

Vercel が管理する、React および Next.js アプリケーション向けの包括的なパフォーマンス最適化ガイドです。8 つのカテゴリーにわたる 45 のルールが含まれており、自動リファクタリングとコード生成を導くため、影響度の高い順に優先順位が付けられています。

適用するタイミング

以下の場合に、これらのガイドラインを参照してください。

  • 新しい React コンポーネントまたは Next.js ページを作成するとき
  • データ取得(クライアント側またはサーバー側)を実装するとき
  • パフォーマンス上の問題についてコードをレビューするとき
  • 既存の React/Next.js コードをリファクタリングするとき
  • バンドルサイズや読み込み時間を最適化するとき

優先度別のルールカテゴリー

優先度カテゴリー影響度プレフィックス
1ウォーターフォールの解消CRITICALasync-
2バンドルサイズの最適化CRITICALbundle-
3サーバーサイドのパフォーマンスHIGHserver-
4クライアントサイドのデータ取得MEDIUM-HIGHclient-
5再レンダリングの最適化MEDIUMrerender-
6レンダリングのパフォーマンスMEDIUMrendering-
7JavaScript のパフォーマンスLOW-MEDIUMjs-
8高度なパターンLOWadvanced-

クイックリファレンス

1. ウォーターフォールの解消(CRITICAL)
  • async-defer-await - await を実際に使用する分岐の中に移動します
  • async-parallel - 独立した処理には Promise.all() を使用します
  • async-dependencies - 部分的な依存関係には better-all を使用します
  • async-api-routes - API ルートではプロミスを早めに開始し、await を遅らせます
  • async-suspense-boundaries - Suspense を使用してコンテンツをストリーミングします
2. バンドルサイズの最適化(CRITICAL)
  • bundle-barrel-imports - 直接インポートし、バレルファイルを避けます
  • bundle-dynamic-imports - 重いコンポーネントには next/dynamic を使用します
  • bundle-defer-third-party - ハイドレーション後に分析/ロギングを読み込みます
  • bundle-conditional - 機能が有効になったときだけモジュールを読み込みます
  • bundle-preload - 体感速度を高めるため、ホバー/フォーカス時にプリロードします
3. サーバーサイドのパフォーマンス(HIGH)
  • server-cache-react - リクエストごとの重複排除に React.cache() を使用します
  • server-cache-lru - リクエストをまたぐキャッシュには LRU キャッシュを使用します
  • server-serialization - クライアントコンポーネントに渡すデータを最小限にします
  • server-parallel-fetching - コンポーネントを再構成して、データ取得を並列化します
  • server-after-nonblocking - ノンブロッキング処理には after() を使用します
4. クライアントサイドのデータ取得(MEDIUM-HIGH)
  • client-swr-dedup - リクエストの自動重複排除には SWR を使用します
  • client-event-listeners - グローバルイベントリスナーの重複を排除します
5. 再レンダリングの最適化(MEDIUM)
  • rerender-defer-reads - コールバック内でのみ使用する状態を購読しないようにします
  • rerender-memo - コストの高い処理をメモ化したコンポーネントに切り出します
  • rerender-dependencies - エフェクトではプリミティブな依存値を使用します
  • rerender-derived-state - 生の値ではなく、派生した真偽値を購読します
  • rerender-functional-setstate - 安定したコールバックには関数形式の setState を使用します
  • rerender-lazy-state-init - コストの高い値には useState に関数を渡します
  • rerender-transitions - 緊急性の低い更新には startTransition を使用します
6. レンダリングのパフォーマンス(MEDIUM)
  • rendering-animate-svg-wrapper - SVG 要素ではなく、ラッパーの div をアニメーションさせます
  • rendering-content-visibility - 長いリストには content-visibility を使用します
  • rendering-hoist-jsx - 静的な JSX をコンポーネントの外に切り出します
  • rendering-svg-precision - SVG の座標精度を下げます
  • rendering-hydration-no-flicker - クライアント専用データにはインラインスクリプトを使用します
  • rendering-activity - 表示/非表示の切り替えには Activity コンポーネントを使用します
  • rendering-conditional-render - 条件分岐には && ではなく三項演算子を使用します
7. JavaScript のパフォーマンス(低〜中)
  • js-batch-dom-css - クラスまたは cssText で CSS の変更をまとめる
  • js-index-maps - 繰り返し検索する場合は Map を作成する
  • js-cache-property-access - ループ内でオブジェクトのプロパティをキャッシュする
  • js-cache-function-results - モジュールレベルの Map に関数の結果をキャッシュする
  • js-cache-storage - localStorage/sessionStorage の読み取りをキャッシュする
  • js-combine-iterations - 複数の filter/map を 1 つのループにまとめる
  • js-length-check-first - 時間のかかる比較の前に配列の長さを確認する
  • js-early-exit - 関数から早期に return する
  • js-hoist-regexp - ループの外で RegExp を作成する
  • js-min-max-loop - sort の代わりにループで最小値/最大値を求める
  • js-set-map-lookups - O(1) の検索には Set/Map を使う
  • js-tosorted-immutable - 不変性を保つために toSorted() を使う
8. 高度なパターン(低)
  • advanced-event-handler-refs - イベントハンドラーを ref に保存する
  • advanced-use-latest - 安定したコールバック ref には useLatest を使う

使用方法

詳しい説明とコード例については、各ルールのファイルを参照してください。

rules/async-parallel.md
rules/bundle-barrel-imports.md
rules/_sections.md

各ルールのファイルには、以下が含まれます。

  • 重要な理由の簡単な説明
  • 誤ったコード例とその説明
  • 正しいコード例とその説明
  • 追加の背景情報と参考資料

完全版ドキュメント

すべてのルールを詳しく展開した完全なガイドについては、AGENTS.md を参照してください。

コメント