全书目录

第六篇:Nuxt 完全指南 —— 全媒体演播中心宇宙

第六章:layouts —— 公共舞美,不要每个节目都重新搭景

1 分钟 190 字 第 133 / 962 个阅读单元

布局就是包住页面的外层舞美系统

官方文档明确要求:

  • app/layouts/default.vue 是默认布局
  • 布局组件必须有单根节点
  • 不能让根节点直接就是 <slot />

默认布局:

vue
<!-- app/layouts/default.vue -->
<template>
  <div class="shell">
    <header>全台头部</header>
    <main>
      <slot />
    </main>
    <footer>全台底部</footer>
  </div>
</template>

页面切换指定布局:

vue
<!-- app/pages/studio.vue -->
<script setup lang="ts">
definePageMeta({
  layout: 'studio'
})
</script>

<template>
  <section>演播厅页面</section>
</template>

自定义布局文件:

vue
<!-- app/layouts/studio.vue -->
<template>
  <div class="studio-layout">
    <aside>导演台</aside>
    <div class="stage">
      <slot />
    </div>
  </div>
</template>

核心心智:

text
app.vue = 全站总壳
layout = 一类页面共用的外层包装
page = 具体某一页的内容

很多人会混:

  • 只有一个统一壳子时,app.vue 往往够用
  • 需要多套外壳时,再引入 layouts/

不要为了“显得专业”而先堆一堆布局。