@nvdfxx
Senior Pomidor developer

Как сделать фильтрацию маршрутов vue?

В проекте пункты меню выводятся с помощью v-for="route in this.$router.options.routes". В vuex хранится роль юзера из firebase (null, user, admin). Нужно фильтровать массив роутов для вывода нужных пунктов меню с учетом роли юзера. Как это лучше реализовать? Желательно без хардкода отдельных массивов роутов под каждую роль.
  • Вопрос задан
  • 376 просмотров
Решения вопроса 1
kleinmaximus
@kleinmaximus
Senior Full-stack Javascript Developer
Ну, это чисто для примера. В meta роута указываете роль (или роли), которым маршрут доступен.

<ul>
    <li v-for="route in routes"> ... </li>
  </ul>


// ...
export default {
  computed: {
    // ...
    userRole() {
      return this.$store.state.user.role;
    },
    routes() {
      return this.$router.options.routes.filter(({ meta }) => meta && meta.role === this.userRole);
    },
    // ...
  },
}
// ...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы