Я создал глобальный компонент, которым я делюсь по нескольким маршрутам. Я упростил компонент ниже для демонстрационных целей.
#name area-wrapper
<template>
<div id="area">
<div id="area-menu">
<menu/>
</div>
<div id="area-content">
<slot/>
</div>
</div>
</template>
В меню находится панель навигации, в которой есть опции, которые изменят содержимое slot
, которое я мог бы просто превратить в компонент component v-bind:is
.
Что я сделалсоздается несколько страниц для маршрутизации
pages
_entity <--*** forgot to include this ***
app
index.vue
_appId.vue
new.vue
Каждая из этих страниц включает в себя компонент, описанный выше, а затем добавляет в свой собственный контент для id="area-content
Что я заметил, так это то, что весьarea-wrapper
перезагружается, когда я перехожу с
website.com/app/112 (pages/app/_appId.vue)
website.com/app/11 (pages/app/_appId.vue)
Я заметил, что если я переместу area-wrapper
к макету, то он работает, проблема в том, что компонент в конечном итоге будет совместно использоваться с несколькими apps
, но будет иметь другое <menu/>
, а макеты не имеют slots
Я не уверен, почемуvue выполняет рендеринг всего компонента, даже если он используется для всех страниц и одинаков для всех страниц.
Что мне здесь не хватает?
Если это ожидаемое поведение, мой вопросстановится, как я могу создать общий компонентпри этом действует как макет, который я включаю в несколько страниц, не настраивая props
и не перезагружая его
+ ==== ОБНОВЛЕНИЕ ==== +
я пыталсячтобы заставить работать гнезда, потому что я верю, что это то, что я после. Однако nuxt
генерирует их неправильно
В соответствии с документацией (``) мне нужно изменить структуру на
pages
_entity
messaging
settings
index.vue
msg
index.vue
messaging.vue(wrong - changed back to index.vue) -> within here add the <nuxt-child> component
messaging.vue(need to move to _entity folder to create children)
nuxt
, чтобы создать дочерние компоненты. Однако он все еще продолжает создавать полные маршруты. Я использую nuxt-i18n
это вызовет проблемы?
маршруты
...
{
path: "/:entity/messaging/messaging",
component: _8a865700,
name: "entity-messaging-messaging___en"
}, {
path: "/:entity/messaging/:msg?",
component: _1ef926cc,
name: "entity-messaging-msg___en"
}, {
path: "/:entity/messaging/settings",
component: _7b358e6a,
name: "entity-messaging-settings___en"
}