Quick Hits & What to Watch
The rest of Nuxt 4.4 worth knowing — vue-router v5, useState reset, better import protection, build profiling — plus the performance wins under the hood.
The rest of Nuxt 4.4 in quick-hit form — enough to recognize each change and reach for it when it matters.
Vue Router v5#
Nuxt now runs on vue-router v5, the first major router upgrade since Nuxt 3. It removes the dependency on unplugin-vue-router — if you used that directly, you can drop it. For most apps the upgrade is transparent. Typed routes leaving experimental status is the next step. 👀
useState reset to default#
useState and clearNuxtState can now reset to the initial value instead of clearing to undefined, matching useAsyncData:
const count = useState('counter', () => 0)
count.value = 42
clearNuxtState('counter') // resets to 0, not undefined
Much saner for state you always expect to have a value.
Better import protection#
When server-only code leaks into your client bundle, the error now shows a full trace of the import chain, the exact line, and actionable suggestions — inspired by TanStack Start. Debugging accidental server imports goes from guesswork to a clear map.
View transition types#
Experimental view transitions now support transition types, so you can style forwards vs. backwards navigation, tabs vs. pages, and so on differently.
Normalised page component names (experimental)#
export default defineNuxtConfig({
experimental: {
normalizeComponentNames: true,
},
})
Makes page component names match route names — nicer devtools and debugging.
Build profiling#
Find out where your build time actually goes:
nuxt build --profile
You get a per-phase/module/plugin breakdown plus three artifacts: a Chrome trace (.nuxt/perf-trace.json), a JSON report (.nuxt/perf-report.json), and a CPU profile (nuxt-build.cpuprofile). Use --profile=verbose for console timing detail.
Performance under the hood#
- 14,000x faster module ID parsing — a regex chain replaced with
indexOf+ slice. - Faster dev via
unrouting— file-system route generation now uses a trie; dev changes up to 28x faster when not adding/removing pages, and route generation is deterministic (no longer sensitive to file ordering). - NuxtLink visibility prefetching disabled in dev to stop unnecessary Vite reloads.
Several 4.4 items (payloadExtraction: 'client', typed routes) point straight at compatibilityVersion: 5. Skimming the upgrade guide now makes the v5 jump smaller later.
Recap#
That's Nuxt 4.4. The headline steps (1–5) change how you fetch data, configure layouts, handle accessibility, cache payloads, and manage sessions; these quick hits modernize the router and sharpen the tooling. On to the next release.