Возможно ли для Vue Router отображать различные макеты в зависимости от переданного параметра? - PullRequest
0 голосов
/ 30 сентября 2019

Мне было интересно, возможно ли, чтобы Vue Router отображал различные макеты в зависимости от параметра, переданного в URL?

Рассмотрим следующие URL:

  • / admin / forms/ ожидается
  • / admin / формы / утверждено
  • / admin / формы / отклонено
  • / admin / формы / категории

Первые 3ссылки относятся к состоянию некоторых объектов формы и будут использовать статус «ожидающий / утвержденный / отклоненный» для передачи параметра в качестве фильтра состояния в API форм. Однако для категорий я хочу, чтобы это отображало представление, в котором перечислены все категории.

Я знаю, что это возможно при наличии двух разных объектов маршрута - один, который соответствует /admin/forms/categories, и один, который соответствует /admin/form/:status, но мне было интересно, можно ли объединить два или иметь способ создания двух маршрутов, чтобы не имело значения, в каком порядке я их определяю (если я поставлю свой маршрут категории ниже маршрута статуса, тогданапример, представление категории не будет отображаться). Для этого я подумал, что что-то вроде (/admin/forms/(:status(?!categories)) будет работать, но я получаю сообщение об ошибке «Ничего не повторять» от Vue Router.

Возможно ли это сделать в Vue Router? более чем счастлив продолжить определение двух разных маршрутов, просто подумал, есть ли более эффективный способ сделать это?

Спасибо!

=====

ОБНОВЛЕНИЕ: не спрашивайте меня, почему, но я ссылался здесь на Vuex, когда это должен был быть Vue Router, д'О

1 Ответ

0 голосов
/ 30 сентября 2019

Передав параметры на страницу / admin / form /, вы можете получить два компонента, один для первых трех с одним типом макета;один для категорий с другим макетом. Использование v-if ... v-else для переключения между ними.

...