Дополнительный сегмент маршрутизатора Vue 3

#javascript #vue.js #vue-router

Вопрос:

Я знаю, что можно включить дополнительные параметры в маршрут с помощью :id? синтаксиса. Мой вопрос: можно ли включить необязательные сегменты/префиксы перед этими необязательными параметрами?

Я имею в виду следующее: я хотел бы иметь такой путь:

 {
    path: 'project/:projectId/variant/:variantId?/tab/:tabId?/group/:groupId?'
}
 

Поэтому, в конце концов, я хочу создать такие маршруты, как

 project/5/variant/3
project/5/variant/3/tab/8
project/5/variant/3/tab/8/group/4
 

вместо этого я в настоящее время получаю

 project/5/variant/4/tab/group
 

Возможно ли как-то достичь этого без разных маршрутов/компонентов?

Комментарии:

1. Если ваш маршрут не выходит за рамки указанного вами, вы можете создать 3 разных маршрута, используя один и тот же компонент.

2. Я тоже думал об этом, но у них должны быть разные имена, и я бы предпочел использовать только одно название маршрута вместо другого

3. Видишь это router.vuejs.org/guide/essentials/… . Я думаю, вам нужно разобраться в пути к регулярному выражению. Не уверен, что это возможно с тем синтаксисом, который вы ожидаете. Вы не упомянули эту версию. Я не уверен next.router.vuejs.org/guide/essentials/… доступно в Vue 2

4. Я уже видел это, но я не совсем уверен, как применить их без «хаков» к моей логике. Конечно, я мог бы проанализировать параметры самостоятельно, но это не совсем то, что я хочу (иначе я бы уже сделал это, прежде чем писать здесь). Я использую Vue 3 с последней версией маршрутизатора