Ребят, молю о помощи, уже несколько суток бьюсь с бедой, скоро начну биться в конвульсиях(
Есть очень интересная задача:
У меня с бека в хуке asyncData приходят template страницы. Этот template обрабатывается етрифайлом
nuxt.config.js:
router: {
extendRoutes(routes, resolve) {
routes.push({
path: `*`,
component: resolve(__dirname, 'pages/-constructor.vue')
});
}
}
Жестко задать структуру я не могу, потому что у нас бек генерит все как того пожелает админ.
В целом эта стратегия рабочая, так уже живет несколько проектов.
asyncData как раз таки в этом constructor находится и в зависимости от полученного template просто грузит вьюху через
<component :is="template" :key="id" :content="content"></component>
Здесь все просто.
Но!
Начались проблемы с приходом статичных роутов для кабинета пользователя. Задал их в pages, так как их никто редактировать не может, и чтобы оно "работало с коробки". Завестись то оно завелось, но вот...
Я его сделал через разные layouts изначально, все было ок, до момента перегрузки этих layouts. Беда в том что там по сути половина сайта перестраивается, и я хотел как-то вынести все это дело в один layout, чтобы и динамические пейджи заходили в него, и статические. По сути я хочу чтобы у меня header, footer, sidebar и еще 3 фиксированные плашки не делали "re-mount" при смене layout`a(там много отработок + адаптив, и при смене layout приходится отлавливать все эти состояния и т.д.)
Скажу честно, я не утверждаю что подобная "архитектура" очень годная, я делал это в силу обстоятельств и не очень глубокого понимания. Но сейчас как-то нужно с этого найти выход, все идеи уже закончились(
Буду очень признателен если кто-то отзовется помочь.
Есть ли способ сделать вложенные layouts
Что-то вроде:
<nuxt>
<nuxt></nuxt>
</nuxt>
или какой-то способ имитировать это?