# Data flow — nuxt/nuxt

> Canonical page: https://codevetter.com/unpack/nuxt/data-flow

# Data flow — nuxt/nuxt

Scanned commit 3fde4d625cc353e83ac10f6b75db8ca480167be4 (2026-10-01). Generated by codevetter codevetter 1.15.0 on 2026-10-02.

Source inspection; upstream code and tests were not executed.

Configuration and filesystem inputs are transformed into resolved options, discovered application structure, generated modules, and bundled artifacts. Incoming requests enter a server adapter and receive a fresh SSR context before Vue plugins, routing, and page data execute. Async results and useState values become serialized payloads that the browser revives before mounting. Session persistence follows a separate cookie-sealing path and does not use the hydration-state registry.
- loadNuxtConfig populates environment-based defaults before loading the schema, imports executable config with native import or Jiti fallback, and passes layered configuration through c12. — [packages/kit/src/loader/config.ts#L262-289](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/kit/src/loader/config.ts#L262-L289) [packages/kit/src/loader/config.ts#L305-336](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/kit/src/loader/config.ts#L305-L336) [packages/kit/src/loader/config.ts#L355-368](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/kit/src/loader/config.ts#L355-L368)
- Resolved layer configuration supplies user hooks in reverse layer order; module resolution similarly registers extended-layer modules before project modules and deduplicates resolved module paths. — [packages/nuxt/src/core/nuxt.ts#L218-224](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/core/nuxt.ts#L218-L224) [packages/nuxt/src/core/nuxt.ts#L1197-1232](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/core/nuxt.ts#L1197-L1232)
- generateApp resolves application structure, combines default and user templates, invokes app:templates, compiles contents, and stores changed results under absolute paths and #build aliases in nuxt.vfs. — [packages/nuxt/src/core/app.ts#L53-79](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/core/app.ts#L53-L79) [packages/nuxt/src/core/app.ts#L89-114](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/core/app.ts#L89-L114)
- Page files from layer appPages directories become prioritized InputFile entries, then a PagesContext route tree and augmented NuxtPage records; routes.mjs serializes normalized routes and imports for runtime use. — [packages/nuxt/src/pages/utils.ts#L92-115](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/pages/utils.ts#L92-L115) [packages/nuxt/src/pages/module.ts#L813-828](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/pages/module.ts#L813-L828)
- Nitro's renderer adapter converts ServerRequest through createEvent, then renderRoute calls createSSRContext to attach URL, runtime config, head manager, payload, reducer registry, and module tracking. — [packages/nitro-server/src/runtime/handlers/renderer.ts#L23-33](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nitro-server/src/runtime/handlers/renderer.ts#L23-L33) [packages/nuxt/src/runtime/server/renderer/index.ts#L251-258](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/runtime/server/renderer/index.ts#L251-L258) [packages/nuxt/src/runtime/server/renderer/app.ts#L21-44](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/runtime/server/renderer/app.ts#L21-L44)
- createNuxtApp connects its payload to ssrContext and exposes only runtimeConfig.public and runtimeConfig.app as client config, while private runtime config remains available through the server context. — [packages/nuxt/src/app/nuxt.ts#L299-314](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/app/nuxt.ts#L299-L314) [packages/nuxt/src/runtime/server/renderer/app.ts#L23-32](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/runtime/server/renderer/app.ts#L23-L32)
- useFetch derives a hashed key from the request and option segments, selects custom $fetch or request-scoped server fetching, and delegates execution to useAsyncData with a cancellation signal. — [packages/nuxt/src/app/composables/fetch.ts#L701-708](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/app/composables/fetch.ts#L701-L708) [packages/nuxt/src/app/composables/fetch.ts#L756-767](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/app/composables/fetch.ts#L756-L767)
- Async-data execution applies transform and pick before assigning data/status; unless serialize is false, the same result is written into nuxtApp.payload.data[key], and stale replaced promises are prevented from updating state. — [packages/nuxt/src/app/composables/asyncData.ts#L963-989](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/app/composables/asyncData.ts#L963-L989) [packages/nuxt/src/app/composables/asyncData.ts#L991-1010](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/app/composables/asyncData.ts#L991-L1010)
- Payload output uses devalue stringify with custom reducers; splitPayload separates data and prerenderedAt from initial state, and renderRoute chooses full inline JSON or initial JSON referencing an external payload URL. — [packages/nuxt/src/runtime/server/renderer/payload.ts#L10-46](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/runtime/server/renderer/payload.ts#L10-L46) [packages/nuxt/src/runtime/server/renderer/payload.ts#L99-108](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/runtime/server/renderer/payload.ts#L99-L108) [packages/nuxt/src/runtime/server/renderer/index.ts#L506-515](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/runtime/server/renderer/index.ts#L506-L515)
- Client payload loading parses __NUXT_DATA__, optionally retrieves external JSON with force-cache for prerendered pages or no-cache for runtime pages, merges client config, and installs registered revivers before assigning the result to NuxtApp. — [packages/nuxt/src/app/composables/payload.ts#L228-262](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/app/composables/payload.ts#L228-L262) [packages/nuxt/src/app/plugins/revive-payload.client.ts#L77-85](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/app/plugins/revive-payload.client.ts#L77-L85)
- Hydration reads async-data values from payload.data and useState values from payload.state; ordinary nonmanual async-data cache lookup can instead read nuxtApp.static.data after hydration. — [packages/nuxt/src/app/composables/asyncData.ts#L1064-1071](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/app/composables/asyncData.ts#L1064-L1071) [packages/nuxt/src/app/composables/state.ts#L29-46](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/app/composables/state.ts#L29-L46)
- Session input arrives through a named request cookie, is unsealed once per event/name, and becomes a cached Session object; updates merge data, reseal the versioned payload, and replace that session's Set-Cookie header. — [packages/nuxt/src/server/session.ts#L134-170](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/server/session.ts#L134-L170) [packages/nuxt/src/server/session.ts#L195-232](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/server/session.ts#L195-L232)

Every claim links to its cited files at the pinned commit. Citations identify source evidence; they do not establish runtime correctness. Independent CodeVetter scan — not reviewed by upstream maintainers.

## Public product links

- [CodeVetter](https://codevetter.com/)
- [Download](https://codevetter.com/download)
- [Documentation](https://codevetter.com/docs/)
- [Source](https://github.com/Codevetter/codevetter)
