nuxt4-patterns
Nuxt 4 app patterns for hydration safety, performance, route rules, lazy loading, and SSR-safe data fetching with useFetch and useAsyncData. Use when building or reviewing a Nuxt 4 app, or debugging hydration mismatches and SSR-safe data fetching.
- Kind
- Skill
- Works with
- Claude Code, Codex
- Languages
- TypeScript / JavaScript
- Source
- affaan-m/ECC @ d3b8a3e90890
- Path
- skills/nuxt4-patterns/SKILL.md
- License
- MIT
- Jobs
- Debugging, Review, Guardrails
InstallCopy it from the source repository, or sign in and let the assistant adapt it for your project.
# Nuxt 4 Patterns Use when building or debugging Nuxt 4 apps with SSR, hybrid rendering, route rules, or page-level data fetching. ## When to Activate - Hydration mismatches between server HTML and client state - Route-level rendering decisions such as prerender, SWR, ISR, or client-only sections - Performance work around lazy loading, lazy hydration, or payload size - Page or component data fetching with `useFetch`, `useAsyncData`, or `$fetch` - Nuxt routing issues tied to route params, middleware, or SSR/client differences ## Hydration Safety - Keep the first render deterministic. Do not put `Date.now()`, `Math.random()`, browser-only APIs, or storage reads directly into SSR-rendered template state. - Move browser-only logic behind `onMounted()`, `import.meta.client`, `ClientOnly`, or a `.client.vue` component when the server cannot produce the same markup. - Use Nuxt's `useRoute()` composable, not the one from `vue-router`. - Do not use `route.fullPath` to drive SSR-rendered markup. URL fragments are client-only, which can create hydration mismatches. - Treat `ssr: false` as an escape hatch for truly browser-only areas, not a default fix for mismatches. ## Data Fetching …