Обнаружение именованного представления используется - PullRequest
0 голосов
/ 07 июля 2019

Я хочу построить макет с динамической боковой панелью. Боковая панель сама по себе имеет собственный шаблон, но я не хочу, чтобы он отображался, если не используется базовый вид маршрутизатора. Ниже псевдокода:

<template>
  <transition name="slide">
    <div class="sidebar" v-if="showSidebar">
      <SidebarHeader />
      <router-view name="side"><router-view>
      <SidebarFooter>
    </div>
  </transition>
  <div class=main><router-view></router-view></div>
</template>

Есть ли очевидный способ достижения этого? Мне не удалось найти какое-либо свойство или функцию для $router или $route объекта.

В качестве обходного пути я создал Sidebar компонент, который должен использоваться для каждого вида боковой панели, но есть ли лучший вариант?

1 Ответ

0 голосов
/ 07 июля 2019

Кажется, я нашел ответ - он требует некоторой хитрости в маршрутах:

{
  path: '',
  component: 'Layout',
  children: [
    { 
      path: '',
      components: { default: SomeMainComponent },
      children: [
        { path: '' },
        { 
          path: '',
          components: { side: SideBox },
          children: [
            path: 'hello',
            component: HelloSidebox
          ]
        } 
      ]
    } 
  ]
}

Этот пустой маршрут {path: ''} предназначен для предотвращения отображения следующего маршрута для точного соответствия маршрута иОтрисовывать только компонент SideBox для любых подходящих под-маршрутов.

...