O componente PageBody envolve o seu conteúdo principal e adiciona um espaçamento interno para um espaçamento consistente.
Use-o dentro do slot padrão do componente Page, após o componente PageHeader:
<template>
<NPage>
<NPageHeader />
<NPageBody />
</NPage>
</template>
Use o componente PageBody em uma página para exibir o conteúdo da página:
<script setup lang="ts">
const route = useRoute()
definePageMeta({
layout: 'docs'
})
const { data: page } = await useAsyncData(route.path, () => {
return queryCollection('docs').path(route.path).first()
})
const { data: surround } = await useAsyncData(`${route.path}-surround`, () => {
return queryCollectionItemSurroundings('content', route.path)
})
</script>
<template>
<NPage>
<NPageHeader :title="page.title" :description="page.description" />
<NPageBody>
<ContentRenderer :value="page" />
<NSeparator />
<NContentSurround :surround="surround" />
</NPageBody>
<template #right>
<NContentToc :links="page.body.toc.links" />
</template>
</NPage>
</template>
ContentRenderer do @nuxt/content para renderizar o conteúdo da página.| Prop | Default | Type |
|---|---|---|
as | 'div' | anyThe element or component this component should render as. |
ui | { base?: any; } |
| Slot | Type |
|---|---|
default | {} |
export default defineAppConfig({
ui: {
pageBody: {
base: 'mt-8 pb-24 space-y-12'
}
}
})
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import ui from '@nitro/ui/vite'
export default defineConfig({
plugins: [
vue(),
ui({
ui: {
pageBody: {
base: 'mt-8 pb-24 space-y-12'
}
}
})
]
})