<NuxtPage>
<NuxtPage>コンポーネントは、pages/ディレクトリにあるページを表示するために必要です。
<NuxtPage>
は、Nuxtに付属している組み込みコンポーネントです。これにより、pages/
ディレクトリにあるトップレベルまたはネストされたページを表示できます。
<NuxtPage>
は、内部状態をさらに考慮するため、<RouterView>
の代わりに使用する必要があります。そうしないと、useRoute()
が誤ったパスを返す可能性があります。Props
name
: 一致するルートレコードのcomponentsオプションで、対応する名前のコンポーネントをレンダリングするようにRouterView
に指示します。- 型:
string
- 型:
route
: すべてのコンポーネントが解決されたルートロケーション。- 型:
RouteLocationNormalized
- 型:
pageKey
:NuxtPage
コンポーネントが再レンダリングされるタイミングを制御します。- 型:
string
またはfunction
- 型:
transition
:NuxtPage
コンポーネントでレンダリングされるすべてのページに対してグローバルトランジションを定義します。- 型:
boolean
またはTransitionProps
- 型:
keepalive
:NuxtPage
コンポーネントでレンダリングされるページのステート保持を制御します。- 型:
boolean
またはKeepAliveProps
- 型:
Nuxtは、
/pages
ディレクトリにあるすべてのVueコンポーネントファイルをスキャンおよびレンダリングすることにより、name
とroute
を自動的に解決します。例
たとえば、static
キーを渡すと、NuxtPage
コンポーネントはマウント時に一度だけレンダリングされます。
app.vue
<template>
<NuxtPage page-key="static" />
</template>
現在のルートに基づいて動的なキーを使用することもできます。
<NuxtPage :page-key="route => route.fullPath" />
$route
オブジェクトは、<NuxtPage>
が<Suspense>
でページをレンダリングする方法に問題を引き起こす可能性があるため、ここでは使用しないでください。あるいは、pageKey
は、/pages
ディレクトリのVueコンポーネントの<script>
セクションからdefinePageMeta
を介してkey
値として渡すことができます。
pages/my-page.vue
<script setup lang="ts">
definePageMeta({
key: route => route.fullPath
})
</script>
ドキュメント > 例 > ルーティング > ページでライブ例を読み、編集してください。
ページのRef
ページコンポーネントのref
を取得するには、ref.value.pageRef
を介してアクセスします。
app.vue
<script setup lang="ts">
const page = ref()
function logFoo () {
page.value.pageRef.foo()
}
</script>
<template>
<NuxtPage ref="page" />
</template>
my-page.vue
<script setup lang="ts">
const foo = () => {
console.log('foo method called')
}
defineExpose({
foo,
})
</script>
カスタムProps
さらに、<NuxtPage>
は、階層をさらに下に渡す必要があるカスタムpropsも受け入れます。
これらのカスタムpropsは、Nuxtアプリのattrs
を介してアクセスできます。
<NuxtPage :foobar="123" />
たとえば、上記の例では、foobar
の値は、テンプレートで$attrs.foobar
を使用するか、<script setup>
でuseAttrs().foobar
を使用することで利用可能になります。