Я бы использовал роутер. js модуль с вложенными маршрутами:
// router.js
import Vue from 'vue'
import Router from 'vue-router'
import MyFirstPage from '~/components/my-first-page'
import MySecondPage from '~/components/my-second-page'
import MyThirdPage from '~/components/my-third-page'
import MyHeaderA from '~/components/my-header-a'
import MyHeaderB from '~/components/my-header-b'
Vue.use(Router)
export function createRouter() {
return new Router({
mode: 'history',
routes: [
{
path: '/',
components: {
header: MyHeaderA,
content: MyFirstPage,
}
},
{
path: '/b',
components: {
header: MyHeaderB,
content: MySecondPage,
}
},
{
path: '/c',
components: {
header: MyHeaderA,
content: MyThirdPage,
}
},
]
})
}
// layout/default.vue
<template>
<div>
<nuxt name="header
<nuxt name="content"></nuxt>
</div>
</template>
Я думаю, что это дает больший контроль над маршрутами и компонентами на страницах, чем nuxt по умолчанию маршрутизатор.