docs/ja-JP/skills/nuxt4-patterns/SKILL.md
ハイドレーション安全性、パフォーマンス、ルートルール、遅延ロード、useFetchとuseAsyncDataを使ったSSR安全なデータフェッチングのためのNuxt 4アプリパターン。
npx skillsauth add affaan-m/everything-claude-code nuxt4-patternsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
SSR、ハイブリッドレンダリング、ルートルール、またはページレベルのデータフェッチングを使用してNuxt 4アプリを構築またはデバッグするときに使用する。
useFetch、useAsyncData、または$fetchを使ったページやコンポーネントのデータフェッチングDate.now()、Math.random()、ブラウザのみのAPI、またはストレージ読み取りを直接入れないこと。onMounted()、import.meta.client、ClientOnly、または.client.vueコンポーネントの後ろに移動する。vue-routerのものではなく、NuxtのuseRoute()コンポーザブルを使用する。route.fullPathを使用しない。URLフラグメントはクライアントのみであり、ハイドレーション不一致を引き起こす可能性がある。ssr: falseは不一致のデフォルト修正としてではなく、真にブラウザのみの領域のエスケープハッチとして扱う。await useFetch()を優先する。サーバーでフェッチしたデータをNuxtペイロードに転送し、ハイドレーション時の2回目のフェッチを避ける。$fetch()呼び出しでない場合、カスタムキーが必要な場合、または複数の非同期ソースを構成する場合はuseAsyncData()を使用する。useAsyncData()にキャッシュの再利用と予測可能なリフレッシュ動作のための安定したキーを提供する。useAsyncData()ハンドラを副作用なしに保つ。SSRとハイドレーション中に実行される可能性がある。$fetch()はユーザーによるトリガーの書き込みまたはクライアントのみのアクションに使用し、SSRからハイドレートされるべきトップレベルのページデータには使用しない。lazy: true、useLazyFetch()、またはuseLazyAsyncData()を使用する。UIでstatus === 'pending'を処理する。server: falseはSEOや最初のペイントに不要なデータのみに使用する。pickでペイロードサイズを削減し、深いリアクティビティが不要な場合はより浅いペイロードを優先する。const route = useRoute()
const { data: article, status, error, refresh } = await useAsyncData(
() => `article:${route.params.slug}`,
() => $fetch(`/api/articles/${route.params.slug}`),
)
const { data: comments } = await useFetch(`/api/articles/${route.params.slug}/comments`, {
lazy: true,
server: false,
})
レンダリングとキャッシング戦略にはnuxt.config.tsのrouteRulesを優先する:
export default defineNuxtConfig({
routeRules: {
'/': { prerender: true },
'/products/**': { swr: 3600 },
'/blog/**': { isr: true },
'/admin/**': { ssr: false },
'/api/**': { cache: { maxAge: 60 * 60 } },
},
})
prerender: ビルド時の静的HTMLswr: キャッシュされたコンテンツを提供しながらバックグラウンドで再検証isr: サポートされているプラットフォームでの増分静的再生成ssr: false: クライアントレンダリングルートcacheまたはredirect: Nitroレベルのレスポンス動作グローバルではなくルートグループごとにルートルールを選択する。マーケティングページ、カタログ、ダッシュボード、APIは通常異なる戦略が必要。
Lazyプレフィックスを使用する。v-ifで遅延コンポーネントを条件付きでレンダリングする。<template>
<LazyRecommendations v-if="showRecommendations" />
<LazyProductGallery hydrate-on-visible />
</template>
defineLazyHydrationComponent()を使用する。NuxtLinkを使用する。$fetchではなくuseFetchまたはuseAsyncDataを使用しているtools
Query live GPU inventory, submit an authenticated Itô fixed-rate RFQ, inspect RFQ or procurement status, revoke device credentials, and run explicitly gated node qualification through the separately installed canonical CLI. Use when a user asks to find H100/H200 capacity, request a fixed compute rate, check Itô compute status, validate GPU nodes, revoke Itô access, or rent or purchase GPU compute and needs the supported boundary explained.
testing
Agent-driven scheduling and publishing of social media posts across 13 platforms via SocialClaw. Use when the user wants to publish to X, LinkedIn, Instagram, Facebook Pages, TikTok, Discord, Telegram, YouTube, Reddit, WordPress, or Pinterest — or when managing campaigns, uploading media, or monitoring post delivery status.
development
LLM APIの使用量のコスト最適化パターン — タスクの複雑さによるモデルルーティング、予算追跡、リトライロジック、プロンプトキャッシング。
tools
Use this skill when retrieving Jira tickets, analyzing requirements, updating ticket status, adding comments, or transitioning issues. Provides Jira API patterns via MCP or direct REST calls.