布局目录 Layouts directory

Nuxt 提供了一个可定制的布局架构,您可以在整个应用程序中使用它,非常适合将常见的 UI 或代码模式提取到可重用的布局组件中。

页面布局放置在 layouts/ 目录中,使用时会通过异步导入自动加载。 如果你创建了一个 layouts/default.vue 这将用于你应用中的所有页面。 通过将 layout 属性设置为组件选项的一部分来使用其他布局。

如果您的应用程序中只有一个布局,您也可以使用 app.vue

自定义布局

-| layouts/
---| custom.vue

在你的布局文件中,你需要使用 <slot /> 来定义你的布局页面内容的加载位置。 例如:

<template>
  <div>
    一些共享的布局内容:
    <slot />
  </div>
</template>

根据上面的示例,您可以使用这样的自定义布局:

<script>
export default {
  layout: "custom",
}
</script>

<slot /> 一起使用

您还可以通过使用 <NuxtLayout> 组件(该组件在整个应用程序中都可用)和在组件选项中设置 layout: false 来获得完全的控制权(例如,使用 slots)。

<template>
  <NuxtLayout name="custom">
    <template #header> 一些标题模板内容。 </template>

    页面的其余部分
  </NuxtLayout>
</template>

<script>
export default {
  layout: false,
}
</script>

<script setup> 一起使用

如果你正在使用 Vue <script setup> 编译时语法糖,你可以使用辅助的 <script> 标记根据需要设置 layout 选项。

💡 提示:

在 Vue 文档中了解更多关于 <script setup><script> 标签共存 的内容。

假设这个目录结构:

-| layouts/
---| custom.vue
-| pages/
---| my-page.vue

和这个 custom.vue 布局:

<template>
  <div>
    一些共享的布局内容:
    <slot />
  </div>
</template>

你可以在 my-page.vue 中地<script setup> 标签旁边使用辅助地 <script> 设置一个页面布局,像下面这样:

<script>
export default {
  layout: "custom",
}
</script>

<script setup>
// 你的 setup 内容
</script>