Исключение возобновляемых глобальных компонентов из другого компонента - PullRequest
0 голосов
/ 30 января 2019

Итак, у меня есть много компонентов, у которых есть боковая панель и код навигационной панели, написанные во всех них, кроме одного компонента.Поэтому я сделал разумную вещь и сделал их обоих (боковую панель и навигационную панель) отдельными компонентами.

Теперь, если я импортирую их в App.vue, он отобразится во всех компонентах, включая тот, в котором они мне не нужны.

Как мне это сделать?Кстати, App.vue является моей центральной точкой, и куда я загружаю router-view с

1 Ответ

0 голосов
/ 30 января 2019

Как ответил @ Badgy

Сделать v-if="$route.path !== 'yourpathwhereyoudontwantthenavbar

Пример:

// this will not display the sidebar on the register page
<Sidebar v-if="$route.path !== '/register'" />

Другая альтернатива от меня:

Определите, где выхотите, чтобы эти компоненты появлялись в мета-опциях ваших объектов маршрута https://router.vuejs.org/guide/advanced/meta.html. Это более или менее простой способ прикрепить произвольную информацию, которую вы можете извлечь из текущего маршрута, например, для определения вашего макета

const router = new Router({
  routes: [
    {
      path: '/users',
      name: 'users',
      component: Users,
      meta: { sidebar: true, navbar: true },
    },
  },
})

// This will make the sidebar appear in the user page
<sidebar v-if="$route.meta.sidebar">

Вы можете сделать <sidebar v-if="!$route.meta.sidebar">, если вы не хотите это только в 1 компоненте

...