Макет одной страницы в Nuxt
Имя на NuxtLayout в app.vue
меняет оболочку для каждого адреса сразу.
На практике чаще нужно иначе: публичные
страницы с шапкой Site,
а одна или несколько служебных -
с макетом admin.
Для этого в Nuxt в файле страницы
вызывают макрос definePageMeta
и передают имя нужного макета.
Корневой файл снова оставляют
без атрибута name:
<template>
<NuxtLayout>
<NuxtPage />
</NuxtLayout>
</template>
Пусть макет admin.vue
по-прежнему содержит шапку Admin
и слот для страницы. На /dashboard
Nuxt возьмёт admin.vue, а index.vue
и about.vue останутся
на default.vue без лишних
настроек в app.vue.
Подключим макет только
для панели управления:
<script setup>
definePageMeta({
layout: 'admin',
});
</script>
<template>
<p>
Dashboard area.
</p>
</template>
Сделайте страницу /settings,
которая использует макет admin.
Проверьте, что главная и другие обычные страницы по-прежнему показывают шапку макета по умолчанию.