Я создаю веб-сайт и использую v vue с vue -router. Компонент My Navbar выполняет итерацию по элементу routes и получает все маршруты для отображения на панели навигации, поэтому я могу просто добавлять и удалять маршруты, не изменяя компонент панели навигации. Теперь я хочу, например, чтобы уведомление о защите данных или юридическое уведомление не отображалось.
Я попытался решить эту проблему с помощью логического и v-if. У вас есть идеи, как решить эту проблему?
Мой код выглядит следующим образом:
Компонент панели навигации:
<template>
<div>
<div class="mdheader"></div>
<div class="md-layout-item">
<md-tabs md-sync-route class="md-primary" md-alignment="centered">
<div
v-for="r in this.$router.options.routes"
:key="r.name"
:v-if="r.showOnBar"
>
<md-tab :md-label="r.name" :to="r.path" exact></md-tab>
</div>
</md-tabs>
</div>
</div>
</template>
<script>
export default {
name: "navbar"
};
</script>
router / index. js
import Vue from "vue";
import VueRouter from "vue-router";
import Home from "@/views/Home.vue";
Vue.use(VueRouter);
const routes = [
{
path: "/",
name: "Home",
component: Home,
showOnBar: true
},
{
path: "/about",
name: "About",
showOnBar: true,
component: () => import("@/views/About.vue")
},
{
path: "/aktuelles",
name: "Aktuelles",
showOnBar: true,
component: () => import("@/views/Aktuelles.vue")
},
{
path: "/datenschutz",
name: "Datenschutz",
showOnBar: false,
component: () => import("@/views/Datenschutz.vue")
}
];
const router = new VueRouter({
routes
});
export default router;
Заранее спасибо