react-best-practices
Vercel ベストプラクティスによる React と Next.js パフォーマンスの最適化
こちらからも入手できます: 0xBigBoss,0xBigBoss,vercel-labs
React のパフォーマンス低下は、読み込み時間の遅延やユーザーのフラストレーションを引き起こします。このスキルでは、Vercel エンジニアリングチームによる 45 個の優先度付きルールを提供し、ウォーターフォールの排除、バンドルサイズの削減、レンダリングの最適化を実現します。
スキルZIPをダウンロード
Claudeでアップロード
設定 → 機能 → スキル → スキルをアップロードへ移動
オンにして利用開始
テストする
「react-best-practices」を使用しています。 ウォーターフォールのためのこのデータフェッチングパターンをレビュー
期待される結果:
- ISSUE: 逐次的な await 呼び出しによりウォーターフォールが発生(3 ラウンドトリップ)
- const user = await fetchUser()
- const posts = await fetchPosts()
- const comments = await fetchComments()
- FIX: Promise.all() を使用して並列実行(1 ラウンドトリップ)
- const [user, posts, comments] = await Promise.all([
- fetchUser(),
- fetchPosts(),
- fetchComments()
- ])
「react-best-practices」を使用しています。 重いコードエディタコンポーネントを遅延ロードするにはどうすればよいか
期待される結果:
- 重いコンポーネントの遅延ロードには next/dynamic を使用してください:
- import dynamic from 'next/dynamic'
- const MonacoEditor = dynamic(
- () => import('./monaco-editor').then(m => m.MonacoEditor),
- { ssr: false, loading: () => <LoadingSkeleton /> }
- )
- これにより、コンポーネントがレンダリングされるまで約 300KB のバンドルが遅延され、TTI が向上します。
セキュリティ監査
安全Static analyzer detected 912 patterns but all are FALSE POSITIVES. The skill contains markdown documentation with code examples for educational purposes, not executable code. Patterns like 'backtick execution' are shell commands in README examples (pnpm build), 'dynamic imports' are React next/dynamic usage examples, 'storage access' shows localStorage caching patterns, and 'network' patterns are fetch API documentation examples. No actual security vulnerabilities exist.
品質スコア
作れるもの
React アプリケーションを開発するフロントエンド開発者
新しいコンポーネントやページを作成する際にこのスキルを使用して、最初から最適なパフォーマンスを確保します。このスキルは、バンドル最適化、適切なデータフェッチングパターン、再レンダリング防止テクニックをガイドします。
プルリクエストをレビューするテックリード
マージ前に、逐次的な非同期呼び出し、不要なバレルインポート、不足している Suspense バウンダリなどのパフォーマンスアンチパターンを検出するために、これらのルールをコードレビューで参照してください。
レガシーコードをリファクタリングする AI アシスタント
これらの優先度付きルールを適用して、既存の React コードベースを体系的に改善します。中程度の影響を持つレンダリング最適化に対応する前に、重要なウォーターフォールの排除から開始します。
これらのプロンプトを試す
Vercel ベストプラクティスを使用してこの React コンポーネントをレビューしてください。ウォーターフォール、不要な再レンダリング、バンドル最適化の機会を特定し、コード例とともに具体的な修正を提案してください。
このコードをリファクタリングして非同期ウォーターフォールを排除してください。独立した操作には Promise.all() を使用し、await を結果が実際に必要なブランチ内に移動してください。
このコンポーネントにコード分割戦略を適用してください。next/dynamic インポート、条件付きローディング、ユーザーインタラクション時のプリローディングの機会を特定してください。
このコンポーネントの不要な再レンダリングを分析してください。状況に応じて、メモ化、適切な依存配列、導出状態のサブスクリプション、関数型 setState パターンを適用してください。
ベストプラクティス
- 中程度の影響の最適化よりも先に、重要なウォーターフォールの排除から開始する
- リクエストごとの重複排除には React.cache() を、クロスリクエストキャッシングには LRU キャッシュを使用する
- 関数型 setState を使用して安定したコールバックを抽出し、必要に応じて ref にハンドラを格納する
回避
- 独立した操作に対する逐次的な await 呼び出し
- 特定の関数ではなくユーティリティライブラリ全体をインポートする
- プリミティブではなく関数を直接依存関係として effect に渡す