react-best-practices
ReactおよびNext.jsアプリケーション向けの包括的なパフォーマンス最適化ガイドで、Vercelによって管理されています。新しいReactコンポーネントやNext.jsページの作成時、クライアント・サーバーサイドのデータフェッチの実装時、またはパフォーマンス改善のコードレビュー時に活用してください。
description の原文を見る
Comprehensive performance optimization guide for React and Next.js applications, maintained by Vercel. Use when writing new React components or Next.js pages, implementing data fetching (client or server-side), or reviewing code for performance issues.
SKILL.md 本文
Vercel React ベストプラクティス
React および Next.js アプリケーションの包括的なパフォーマンス最適化ガイドで、Vercel により保守されています。8つのカテゴリにわたる45のルールが含まれており、自動リファクタリングとコード生成を導くために影響度で優先順位付けされています。
使用場面
以下の場合にこれらのガイドラインを参照してください:
- 新しい React コンポーネントまたは Next.js ページを作成している
- データ取得を実装している(クライアント側またはサーバー側)
- パフォーマンスの問題についてコードをレビューしている
- 既存の React/Next.js コードをリファクタリングしている
- バンドルサイズまたは読み込み時間を最適化している
ルールカテゴリを優先度順に表示
| 優先度 | カテゴリ | 影響度 | プレフィックス |
|---|---|---|---|
| 1 | ウォーターフォールの排除 | CRITICAL | async- |
| 2 | バンドルサイズ最適化 | CRITICAL | bundle- |
| 3 | サーバーサイドパフォーマンス | HIGH | server- |
| 4 | クライアントサイドデータ取得 | MEDIUM-HIGH | client- |
| 5 | 再レンダー最適化 | MEDIUM | rerender- |
| 6 | レンダリングパフォーマンス | MEDIUM | rendering- |
| 7 | JavaScript パフォーマンス | LOW-MEDIUM | js- |
| 8 | 高度なパターン | LOW | advanced- |
クイックリファレンス
1. ウォーターフォールの排除(CRITICAL)
async-defer-await- 実際に使用される分岐に await を移動するasync-parallel- 独立した操作に Promise.all() を使用するasync-dependencies- 部分的な依存関係に better-all を使用するasync-api-routes- API ルートで早期に promise を開始し、遅く 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- クライアント専用データに inline script を使用するrendering-activity- 表示/非表示に Activity コンポーネントを使用するrendering-conditional-render- 条件付きに && ではなく三項演算子を使用する
7. JavaScript パフォーマンス(LOW-MEDIUM)
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- ソートの代わりに min/max にループを使用するjs-set-map-lookups- O(1) 検索に Set/Map を使用するjs-tosorted-immutable- 不変性に toSorted() を使用する
8. 高度なパターン(LOW)
advanced-event-handler-refs- ref にイベントハンドラを保存するadvanced-use-latest- 安定したコールバック ref に useLatest を使用する
使用方法
詳細な説明とコード例については、個別のルールファイルを参照してください:
rules/async-parallel.md
rules/bundle-barrel-imports.md
rules/_sections.md
各ルールファイルには以下が含まれます:
- それが重要な理由についての簡潔な説明
- 説明付きの不正なコード例
- 説明付きの正しいコード例
- 追加のコンテキストと参考資料
完全なコンパイル済みドキュメント
すべてのルールが展開された完全なガイドについては AGENTS.md を参照してください。
使用時期
このスキルは、概要で説明されるワークフローまたはアクションを実行するのに適用できます。
制限事項
- このスキルは、タスクが上記で説明されるスコープと明らかに一致する場合にのみ使用してください。
- 出力を環境固有の検証、テスト、または専門家によるレビューの代替品として扱わないでください。
- 必要な入力、権限、安全境界、または成功基準が欠落している場合は、停止して明確化を求めてください。
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- sickn33
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/sickn33/antigravity-awesome-skills / ライセンス: MIT
関連スキル
doubt-driven-development
重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。
apprun-skills
TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。
desloppify
コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。
debugging-and-error-recovery
テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。
test-driven-development
テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。
incremental-implementation
変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。