Использовать регулярное выражение в маршрутах Vue Router

Я создаю приложение VueJS, которое активно использует маршрутизатор vue.

Вот структура моего routes.js:

export const routes = [
    { path: '', component: Poetry, children: [
        { path: '', name: 'poetry', component: PoetryLanding },
        { path: 'poetry/:id', name: 'poetrycard', component: PoetryCard },
        { path: 'poetry/search', name: 'poetrysearch', component: PoetrySearch },
    ]},
]

Я хочу использовать регулярное выражение во втором дочернем компоненте, т. poetrycardЕ. Он принимает только params ( :id), который является числом. Я делаю это, потому что меня poetrysearchзатрагивают, поскольку /searchэто рассматривается как :id!

Я пытался:

{ path: 'poetry/:id/[0-9]/g', name: 'poetrycard', component: PoetryCard }

Но это не работает. Пожалуйста помоги.

javascript,vue.js,vue-router,

1

Ответов: 1


2 принят

vue-router использует path-to-regexp в качестве механизма согласования траектории, поэтому он поддерживает множество продвинутых шаблонов сопоставления, таких как дополнительные динамические сегменты, нулевые или более / одно или несколько требований и даже пользовательские шаблоны регулярных выражений.

Поэтому измените определение маршрута следующим образом:

{ path: 'poetry/:id(\d+)', name: 'poetrycard', component: PoetryCard }

Ссылки - Расширенные шаблоны сопоставления

JavaScript, vue.js вид-маршрутизатор,
Похожие вопросы
Яндекс.Метрика