nuxt-best-practices について
Nuxt アプリを開発・保守する人向けのパフォーマンスとコード実践ガイドです。データ取得、レンダリング、サーバールート、状態管理などを扱う優先度付き23ルールを収録し、Nuxt 3と4.5の注記も含みます。
主な機能
- 019カテゴリにわたる優先度付き23ルール
- 02データ取得とエラー状態の指針
- 03サーバールートと入力検証
- 04レンダリングと状態管理の実践
- 05型安全性とプロジェクト構成
- 06パフォーマンスとデプロイの指針
活用シーン
- 01新しいNuxtページやコンポーネントの確認
- 02データ取得とレンダリング方式の選択
- 03コンポーザブル、型、自動インポートの整理
- 04サーバールートとデプロイ設定の確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ vinayakkulkarni/ vue-nuxt-best-practices --skill nuxt-best-practicesインストール後、Claude Code で/nuxt-best-practicesを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
AGENTS.mdmetadata.jsonpackage.jsonrules/_sections.md_template.mddata-conditional-enabled.mddata-error-handling.mddata-key-unique.mddata-transform.mddata-use-fetch.mdimports-component-naming.mdimports-composable-exports.mdimports-direct-composable-imports.mdimports-no-barrel-autoimport.mdimports-type-locations.mdpages-named-views.mdpages-nuxtlink-custom-prefetch.mdpages-use-layout.mdrendering-client-only.mdrendering-ssr-streaming.mdserver-error-handling.mdserver-route-meta.mdserver-runtime-config.mdserver-validated-input.mdstate-use-state.mdtypes-import-paths.mdtypes-no-any.mdtypes-strict-emits.mdscripts/build.tsvalidate.ts詳細
Nuxt のベストプラクティス
Nuxt 4 アプリケーション向けの包括的なパフォーマンス最適化ガイドです(現在:Nuxt 4.5、EOL が近づく 3.x アプリケーション向けの注記を含みます)。影響度に基づいて優先順位付けされた 9 カテゴリー、23 のルールを収録し、自動リファクタリングとコード生成を支援します。
適用するタイミング
次の場合に、これらのガイドラインを参照してください。
- 新しい Nuxt ページ、コンポーネント、コンポーザブルを作成するとき
- データフェッチを実装するとき(useFetch、useAsyncData、4.5 の
enabledオプション) - サーバールートと API エンドポイントを作成するとき
- 型、コンポーザブル、自動インポートを整理するとき
- Nuxt モジュールとプラグインを扱うとき
- レンダリングモード(SSR、SSG、SPA、4.5 の実験的な SSR ストリーミング)を設定するとき
- レイアウト、名前付きビュー、NuxtLink のプリフェッチ(Nuxt 4.5 の規約)を使用するとき
優先度別のルールカテゴリー
| 優先度 | カテゴリー | 影響度 | プレフィックス |
|---|---|---|---|
| 1 | データフェッチ | CRITICAL | data- |
| 2 | 自動インポートと整理 | CRITICAL | imports- |
| 3 | サーバーと API ルート | HIGH | server- |
| 4 | レンダリングモード | HIGH | rendering- |
| 5 | 状態管理 | MEDIUM-HIGH | state- |
| 6 | ページ、レイアウト、ナビゲーション | MEDIUM | pages- |
| 7 | 型安全性 | MEDIUM | types- |
| 8 | モジュールとプラグイン | LOW-MEDIUM | modules- |
| 9 | パフォーマンスとデプロイ | LOW | perf- |
クイックリファレンス
1. データフェッチ(CRITICAL)
data-use-fetch- useFetch/useAsyncData を使用し、コンポーネント内で生の fetch を使用しないdata-key-unique- データフェッチには必ず一意のキーを指定するdata-lazy-loading- 重要でないデータには lazy オプションを使用するdata-transform- テンプレート内ではなく、フェッチ時にデータを変換するdata-error-handling- エラー状態と保留状態を必ず処理するdata-refresh-patterns- refresh() と clear() を適切に使用するdata-conditional-enabled- 条件付きフェッチにはenabledオプションを使用する(4.5 以降)
2. 自動インポートと整理(CRITICAL)
imports-no-barrel-autoimport- 自動インポートされるディレクトリにバレルエクスポートを作成しないimports-component-naming- コンポーネント名でフォルダーのプレフィックスを重複させないimports-type-locations- 型は専用ディレクトリ(app/types、shared/types、server/types)に配置するimports-composable-exports- コンポーザブルがエクスポートするのは関数のみとし、型はエクスポートしないimports-direct-composable-imports- コンポーザブル間では直接インポートを使用する
3. サーバーと API ルート(HIGH)
server-validated-input- Zod とともに getValidatedQuery/readValidatedBody を使用するserver-route-meta- OpenAPI ドキュメント用に defineRouteMeta を必ず追加するserver-runtime-config- useRuntimeConfig を使用し、process.env は使用しないserver-error-handling- 一貫したエラーレスポンスには createError を使用するserver-middleware-order- ミドルウェアの実行順序を理解する
4. レンダリングモード(HIGH)
rendering-route-rules- routeRules でルートごとにレンダリングを設定するrendering-hybrid- パフォーマンスを最適化するためにハイブリッドレンダリングを使用するrendering-prerender- ビルド時に静的ページをプリレンダリングするrendering-client-only- ブラウザー固有のコンポーネントには ClientOnly を使用するrendering-ssr-streaming- SSR ストリーミングを有効にする前に、その仕組みを理解する(4.5 以降、実験的)
5. 状態管理(MEDIUM-HIGH)
state-use-state- SSR に安全な共有状態には useState を使用するstate-pinia-setup- Nuxt で Pinia を正しくセットアップするstate-hydration- ハイドレーションの不一致を適切に処理するstate-computed-over-watch- 派生状態には watch より computed を優先する
6. ページ、レイアウト、ナビゲーション(MEDIUM)
pages-use-layout- 解決済みのレイアウトを読み取るには useLayout を使用する(4.5 以降)pages-named-views- 名前付きビューには [email protected] 規約を使用する(4.5 以降)pages-nuxtlink-custom-prefetch- NuxtLink のカスタムスロットでは、プリフェッチを手動で設定する(4.5 以降)
7. 型安全性(中)
types-no-inline- コンポーネントやコンポーザブル内で型をインライン定義しないでくださいtypes-import-paths- 正しいインポートパス(#shared、~/、~~/)を使用してくださいtypes-no-any-any型は使用しないでくださいtypes-zod-schemas- 型推論を利用した実行時検証には Zod を使用してくださいtypes-strict-emits- emit の型を完全に指定してください。camelCase で宣言し、kebab-case でリッスンします
8. モジュールとプラグイン(低〜中)
modules-order- nuxt.config ではモジュールの順序が重要ですmodules-runtime-vs-build- 実行時モジュールとビルド時モジュールの違いを理解してくださいplugins-client-server- .client.ts と .server.ts のサフィックスを正しく使用してくださいplugins-provide-inject- 横断的な関心事には provide/inject を使用してください
9. パフォーマンスとデプロイ(低)
perf-bundle-analysis- バンドルサイズを分析して最適化してくださいperf-image-optimization- 画像を最適化するには nuxt/image を使用してくださいperf-font-loading- フォントの読み込み戦略を設定してくださいperf-caching-headers- 適切なキャッシュヘッダーを設定してください
使用方法
詳しい説明とコード例については、個別のルールファイルを参照してください。
rules/data-use-fetch.md
rules/imports-no-barrel-autoimport.md
rules/_sections.md
各ルールファイルには、次の内容が含まれています。
- 重要である理由の簡単な説明
- 誤ったコード例とその説明
- 正しいコード例とその説明
- 補足情報と Nuxt 固有の注意事項
コンパイル済みドキュメント全文
すべてのルールを詳しく説明した完全なガイドについては、AGENTS.md を参照してください。
コメント
Markdown 対応