definePageMeta()

Declares compile-time metadata for a page component (layout, middleware, etc.).

Since Nuxt 3.0 Spec ↗

Syntax

definePageMeta(meta)

Parameters

NameTypeRequiredDescription
meta PageMeta Yes `layout`, `middleware`, `keepalive`, `key`, `name`, `path`, `alias`, `redirect`, `pageTransition`, plus custom keys.

Returns

void — Compiler macro; extracted at build time.

Examples

<script setup lang="ts">
definePageMeta({
  layout: 'dashboard',
  middleware: ['auth'],
})
</script>
<script setup lang="ts">
definePageMeta({
  title: 'Settings',
  keepalive: true,
  pageTransition: { name: 'slide' },
})
</script>

Notes

A compiler macro usable only inside `pages/` components and only at the top level of `<script setup>`. It cannot reference variables outside its own scope because it is statically analyzed. Custom keys are accessible via `useRoute().meta` and in route middleware.

See also