Change8

v4.3.0

📦 nuxtView on GitHub →
10 features🐛 4 fixes🔧 3 symbols

Summary

Nuxt 4.3 introduces powerful features like route rule layouts, improved ISR/SWR payload extraction, and a draggable dev error overlay. This release also brings significant performance optimizations under the hood.

Migration Steps

  1. If you rely on Nuxt v3, note that critical bug fixes and security updates will now be provided until July 31, 2026.
  2. To prepare for Nuxt v5, review the [Upgrade Guide](/docs/4.x/getting-started/upgrade) for details on migrating projects using `future.compatibilityVersion: 5`.

✨ New Features

  • Route rules can now define layouts using the new `appLayout` property, allowing centralized layout management.
  • Layout props can now be passed when using the `setPageLayout` composable.
  • Payload extraction now supports ISR, SWR, and cached `routeRules`, enabling client-side navigation to use cached payloads.
  • Payload extraction now works in development mode when `nitro.static` is `true` or for pages with `isr`, `swr`, `prerender`, or `cache` route rules.
  • Modules in Nuxt layers can now be disabled by setting their configuration to `false` in `nuxt.config.ts`.
  • Route groups (e.g., `(protected)/`) are now exposed in page meta via the `groups` property.
  • A new `#server` alias is available for clean imports within the server directory, with import protection.
  • The development error overlay is now draggable, snaps to screen edges, and can be minimized, with state persisting across reloads.
  • Module authors can use async functions when adding build plugins via `addVitePlugin` or `addWebpackPlugin`, enabling lazy loading of plugins.
  • The `inlineStyles` feature now functions correctly with webpack and rspack builders.

🐛 Bug Fixes

  • Internal plugins now use filters to prevent unnecessary hook execution, improving performance.
  • The `nuxt:ssr-styles` plugin performance has been significantly improved.
  • Layer alias transformation is now skipped when using Vite, as Vite handles this natively.
  • Route rules compilation now uses `rou3` in the client chunk, removing the dependency on `radix3` in the client bundle and eliminating app manifest fetches.

Affected Symbols