Nuxt 3/4 performance optimization and architecture guidelines for building fast, maintainable full-stack applications...
Comprehensive performance optimization guide for Nuxt 4 applications (current: Nuxt 4.5, with notes for 3.x apps approaching EOL). Contains 23 rules across 9 categories, prioritized by impact to guide automated refactoring and code generation.
Reference these guidelines when:
enabled option)| Priority | Category | Impact | Prefix |
|---|---|---|---|
| 1 | Data Fetching | CRITICAL | data- |
| 2 | Auto-Imports & Organization | CRITICAL | imports- |
| 3 | Server & API Routes | HIGH | server- |
| 4 | Rendering Modes | HIGH | rendering- |
| 5 | State Management | MEDIUM-HIGH | state- |
| 6 | Pages, Layouts & Navigation | MEDIUM | pages- |
| 7 | Type Safety | MEDIUM | types- |
| 8 | Modules & Plugins | LOW-MEDIUM | modules- |
| 9 | Performance & Deployment | LOW | perf- |
data-use-fetch - Use useFetch/useAsyncData, never raw fetch in componentsdata-key-unique - Always provide unique keys for data fetchingdata-lazy-loading - Use lazy option for non-critical datadata-transform - Transform data at fetch time, not in templatedata-error-handling - Always handle error and pending statesdata-refresh-patterns - Use refresh() and clear() appropriatelydata-conditional-enabled - Use the enabled option for conditional fetching (4.5+)imports-no-barrel-autoimport - Never create barrel exports in auto-imported directoriesimports-component-naming - Don't duplicate folder prefix in component namesimports-type-locations - Place types in dedicated directories (app/types, shared/types, server/types)imports-composable-exports - Composables export functions only, not typesimports-direct-composable-imports - Use direct imports between composablesserver-validated-input - Use getValidatedQuery/readValidatedBody with Zodserver-route-meta - Always add defineRouteMeta for OpenAPI docsserver-runtime-config - Use useRuntimeConfig, never process.envserver-error-handling - Use createError for consistent error responsesserver-middleware-order - Understand middleware execution orderrendering-route-rules - Configure rendering per-route with routeRulesrendering-hybrid - Use hybrid rendering for optimal performancerendering-prerender - Prerender static pages at build timerendering-client-only - Use ClientOnly for browser-specific componentsrendering-ssr-streaming - Understand SSR streaming before enabling it (4.5+, experimental)state-use-state - Use useState for SSR-safe shared statestate-pinia-setup - Set up Pinia correctly with Nuxtstate-hydration - Handle hydration mismatches properlystate-computed-over-watch - Prefer computed over watch for derived statepages-use-layout - Use useLayout to read the resolved layout (4.5+)pages-named-views - Use the name@view.vue convention for named views (4.5+)pages-nuxtlink-custom-prefetch - Wire prefetch manually in NuxtLink custom slots (4.5+)types-no-inline - Never define types inline in components/composablestypes-import-paths - Use correct import paths (#shared, ~/, ~~/)types-no-any - Never use any typetypes-zod-schemas - Use Zod for runtime validation with type inferencetypes-strict-emits - Type emits fully; declare camelCase, listen kebab-casemodules-order - Module order matters in nuxt.configmodules-runtime-vs-build - Understand runtime vs build-time modulesplugins-client-server - Use .client.ts and .server.ts suffixes correctlyplugins-provide-inject - Use provide/inject for cross-cutting concernsperf-bundle-analysis - Analyze and optimize bundle sizeperf-image-optimization - Use nuxt/image for optimized imagesperf-font-loading - Configure font loading strategyperf-caching-headers - Set appropriate cache headersRead individual rule files for detailed explanations and code examples:
rules/data-use-fetch.md
rules/imports-no-barrel-autoimport.md
rules/_sections.md
Each rule file contains:
For the complete guide with all rules expanded: AGENTS.md