--- title: "" description: The NuxtPage component is required to display pages located in the pages/ directory. --- # `` `` is a built-in component that comes with Nuxt. `NuxtPage` is required to display top-level or nested pages located in the [`pages/` directory](/docs/guide/directory-structure/pages). `NuxtPage` is a wrapper around [``](https://router.vuejs.org/api/interfaces/RouterViewProps.html#interface-routerviewprops) component from Vue Router. `NuxtPage` component accepts same `name` and `route` props. - **name:** type: `string` `name` helps `RouterView` render the component with the corresponding name in the matched route record's components option. - **route:** type: `RouteLocationNormalized` `route` is a route location that has all of its components resolved. > **Nuxt automatically resolves the `name` and `route` by scanning and rendering all Vue component files found in the `/pages` directory.** Apart from the `name` and `route`, `NuxtPage` component also accepts `pageKey` props. - **pageKey:** type: `string` or `function` `pageKey` helps control when the `NuxtPage` component is re-rendered. ## Example For example, passing `static` key, `NuxtPage` component is rendered only once when it is mounted. ```html ``` You can also use a dynamic key based on the current route. (Don't use `$route` object here as it can cause problems with how `` renders pages with ``.) ```html ``` Alternatively, `pageKey` can be passed as a `key` value via `definePageMeta` from the ` ``` :button-link[Open on StackBlitz]{href="https://stackblitz.com/github/nuxt/examples/tree/main/routing/pages?file=app.vue" blank} ## Accessing a page's component ref To get the ref of a page component, access it through `ref.value.pageRef` ````html ```` ## Custom Props In addition, `NuxtPage` also accepts custom props that you may need to pass further down the hierarchy. These custom props are accessible via `attrs` in the Nuxt app. ```html ``` For example, in the above example, the value of `foobar` will be available using `$attrs.foobar` in the template or `useAttrs().foobar` in `