Communityライティング&編集github.com

Reactベストプラクティス

Reactアプリケーションのための包括的なパフォーマンス最適化ガイド。重要度順に優先順位付けされた7カテゴリ37のルールを提供します。

Reactベストプラクティス とは?

このスキルは、Reactアプリケーションのパフォーマンスを大幅に向上させるための包括的なベストプラクティスガイドです。ウォーターフォールの解消、バンドルサイズの最適化(クリティカル)、クライアントサイドデータフェッチング(中~高)、再レンダリング最適化(中)、レンダリングパフォーマンス(中)、JavaScriptパフォーマンス(低~中)、高度なパターン(低)の7カテゴリにわたり、優先順位と影響度に基づいて合計37のルールを体系的に整理しています。各ルールには具体的なコード例(正しい例と間違った例)と説明が含まれており、開発者は任意のルールを個別に参照・適用できます。プラットフォーム非依存で、Reactを使用するあらゆるプロジェクトに適用可能です。

対応✓Claude Code~Codex CLI~Cursor
npx skills add Archana-gupta1331/claude-Skill-2e827288-41cc-488d-870d-e4bdeb7a1939

Installed? Explore more ライティング&編集 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

Reactベストプラクティス は何をしますか?

Reactアプリケーションのための包括的なパフォーマンス最適化ガイド。影響度で優先順位付けされた7カテゴリ37のルールを提供します。

優先順位別ルールカテゴリ

優先順位カテゴリ影響度プレフィックス
1ウォーターフォールの解消クリティカルasync-
2バンドルサイズ最適化クリティカルbundle-
3クライアントサイドデータ取得中~高client-
4再レンダリング最適化中rerender-
5レンダリングパフォーマンス中rendering-
6JavaScriptパフォーマンス低~中js-
7高度なパターン低advanced-

クイックリファレンス

1. ウォーターフォールの解消(クリティカル)

  • async-defer-await - awaitを実際に使用するブランチに移動する
  • async-parallel - 独立した操作にはPromise.all()/allSettled()を使用する

2. バンドルサイズ最適化(クリティカル)

  • bundle-dynamic-imports - 重量コンポーネントにはReact.lazy()を使用
  • bundle-defer-third-party - アナリティクス/ログのオンデマンド読み込み
  • bundle-conditional - 機能が有効になったときのみモジュールを読み込む
  • bundle-preload - ホバー/フォーカス時にプリロードして体感速度向上

3. クライアントサイドデータ取得(中~高)

  • client-query-dedup - TanStack Queryを使用して自動リクエスト重複排除
  • client-event-listeners - グローバルイベントリスナーの重複排除
  • client-passive-event-listeners - スクロールパフォーマンスにパッシブリスナーを使用
  • client-localstorage-schema - localStorageデータのバージョン管理と最小化

4. 再レンダリング最適化(中)

  • rerender-defer-reads - コールバック内でのみ使用するステートを購読しない
  • rerender-memo - 重い処理をメモ化されたコンポーネントに抽出
  • 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-hoist-jsx - 静的なJSXをコンポーネントの外に抽出
  • 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をひとつのループに結合
  • js-length-check-first - 高価な比較の前に配列の長さをチェック
  • js-early-exit - 関数から早期リターン
  • js-hoist-regexp - RegExpの生成をループの外に移動
  • js-min-max-loop - ソートではなくループで最小値/最大値を取得
  • js-set-map-lookups - O(1)検索にSet/Mapを使用
  • js-tosorted-immutable - 不変性のためにtoSorted()を使用

7. 高度なパターン(低)

  • advanced-event-handler-refs - イベントハンドラーをrefに格納
  • advanced-use-latest - 安定したコールバックrefにはuseLatestを使用

使用方法

references/内の各ルールファイルには、説明、誤ったコード例と正しいコード例、およびコンテキストが含まれています。必要に応じて個別のファイルを参照してください。

関連スキル