react-best-practices について
react-best-practices は、React 19.2 アプリ向けのパフォーマンス最適化ガイドです。影響度順に並ぶ7カテゴリ、30のルールで、React コードの作成、レビュー、リファクタリングを支援します。
主な機能
- 017カテゴリにわたる30のルール
- 02非同期処理とバンドルサイズを優先
- 03クライアント側とレンダリングのパターン
- 04JavaScript のパフォーマンス手法
- 05各ルールファイルにコード例を掲載
活用シーン
- 01React コンポーネント作成時の指針
- 02React コードのパフォーマンスレビュー
- 03アプリのリファクタリングと読み込み時間の最適化
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ lgariv-dn/ frontend-skills --skill react-best-practicesインストール後、Claude Code で/react-best-practicesを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
AGENTS.mdrules/advanced-event-handler-refs.mdadvanced-init-once.mdasync-defer-await.mdasync-parallel.mdasync-suspense-boundaries.mdbundle-barrel-imports.mdbundle-conditional.mdbundle-preload.mdclient-localstorage-schema.mdclient-passive-event-listeners.mdjs-cache-function-results.mdjs-cache-property-access.mdjs-cache-storage.mdjs-combine-iterations.mdjs-early-exit.mdjs-hoist-regexp.mdjs-index-maps.mdjs-length-check-first.mdjs-min-max-loop.mdjs-set-map-lookups.mdjs-tosorted-immutable.mdrendering-activity.mdrendering-animate-svg-wrapper.mdrendering-conditional-render.mdrendering-content-visibility.mdrendering-svg-precision.mdrendering-use-transition-loading.mdrerender-defer-reads.mdrerender-dependencies.md詳細
React のベストプラクティス
Vercel Engineering を参考にした、React アプリケーション向けの包括的なパフォーマンス最適化ガイドです。7 つのカテゴリにわたる 30 のルールを、影響度の高い順に掲載し、自動リファクタリングとコード生成の指針とします。
注:このバージョンは、純粋な React 19.2 向けにカスタマイズされています:
- サーバーサイドのデータ取得と SWR のルールを削除しました(プロジェクトでは react-query を使用しています)
- Next.js 固有のルールを削除しました(next/dynamic、SSR のハイドレーションなど)
- React Compiler が有効です — メモ化のルール(
memo、useMemo、useCallback)を削除しました。コンパイラが自動的に処理します
適用するタイミング
次のような場合に、これらのガイドラインを参照してください:
- 新しい React コンポーネントを作成するとき
- パフォーマンス上の問題がないかコードをレビューするとき
- 既存の React コードをリファクタリングするとき
- バンドルサイズや読み込み時間を最適化するとき
優先度別のルールカテゴリ
| 優先度 | カテゴリ | 影響度 | プレフィックス |
|---|---|---|---|
| 1 | ウォーターフォールの解消 | 重大 | async- |
| 2 | バンドルサイズの最適化 | 重大 | bundle- |
| 3 | クライアントサイドのパターン | 中~高 | client- |
| 4 | 再レンダリングの最適化 | 中 | rerender- |
| 5 | レンダリングのパフォーマンス | 中 | rendering- |
| 6 | JavaScript のパフォーマンス | 低~中 | js- |
| 7 | 高度なパターン | 低 | advanced- |
クイックリファレンス
1. ウォーターフォールの解消(重大)
async-defer-await- 実際に使用する分岐の中に await を移動するasync-parallel- 独立した処理には Promise.all() を使用するasync-suspense-boundaries- Suspense を使ってコンテンツをストリーミングする
2. バンドルサイズの最適化(重大)
bundle-barrel-imports- 直接インポートし、バレルファイルを避けるbundle-conditional- 機能が有効になったときだけモジュールを読み込むbundle-preload- 体感速度を高めるため、ホバー時やフォーカス時に事前読み込みする
3. クライアントサイドのパターン(中~高)
client-localstorage-schema- 型安全な localStorage アクセスclient-passive-event-listeners- スクロールやタッチにはパッシブイベントリスナーを使用する
4. 再レンダリングの最適化(中)
rerender-defer-reads- コールバックでのみ使用する状態をサブスクライブしないrerender-dependencies- エフェクトではプリミティブな依存値を使用するrerender-derived-state- 生の値ではなく、派生した真偽値をサブスクライブするrerender-functional-setstate- 安定したコールバックには関数形式の setState を使用するrerender-lazy-state-init- コストの高い値には useState に関数を渡すrerender-transitions- 緊急性の低い更新には startTransition を使用する
5. レンダリングのパフォーマンス(中)
rendering-animate-svg-wrapper- SVG 要素ではなく、ラッパーの div をアニメーションさせるrendering-content-visibility- 長いリストには content-visibility を使用するrendering-svg-precision- SVG の座標精度を下げるrendering-activity- 表示/非表示には Activity コンポーネントを使用するrendering-conditional-render- 条件分岐には && ではなく三項演算子を使用する
6. 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() を使用する
7. 高度なパターン(低)
advanced-event-handler-refs- イベントハンドラーを ref に格納する
使用方法
詳しい説明とコード例については、各ルールファイルをお読みください。
rules/async-parallel.md
rules/bundle-barrel-imports.md
各ルールファイルには、次の内容が含まれています。
- 重要である理由の簡単な説明
- 説明付きの誤ったコード例
- 説明付きの正しいコード例
- 追加の背景情報と参考資料
完全版ドキュメント
すべてのルールを詳しくまとめたガイドは、AGENTS.md をご覧ください。
コメント
Markdown 対応