Основы сопоставления маршрутов

Для определения маршрутов в Vue Router используется метод router с массивом объектов, каждый из которых представляет собой маршрут. Каждый объект маршрута содержит свойства, такие как path (путь), component (компонент для отображения) и другие опциональные параметры.

Пример синтаксиса сопоставления маршрутов в Vue Router

Примеры сопоставления маршрутов

Простой маршрут

Маршрут с динамическим параметром

Вложенные маршруты

Доступ к параметрам маршрута

В компонентах Vue, связанных с маршрутами, можно получить доступ к параметрам маршрута через объект $route.params

Регулярное выражение в параметрах

При определении такого параметра, как :userId, мы внутренне используем следующее регулярное выражение ([^/]+) (по крайней мере, один символ, кроме косой черты /), для извлечения параметров из URL-адресов. Это работает хорошо, если вам не нужно различать два маршрута на основе содержимого параметра. Представьте себе два маршрута /:orderId и /:productName оба будут соответствовать одним и тем же URL-адресам, поэтому нам нужен способ их дифференцировать

Самый простой способ — добавить статический раздел к пути, который их отличает

Но в некоторых сценариях мы не хотим добавлять этот статический раздел /o/ p Однако orderId это всегда число, а productName может быть чем угодно, поэтому мы можем указать собственное регулярное выражение для параметра в скобках

Теперь переход на /25 будет соответствовать /:orderId, а переход к чему-либо еще будет соответствовать /:productName. Порядок массива routes даже не имеет значения!

Обратите внимание
Обязательно экранируйте обратную косую черту (\), как мы это делали с \d(becomes \\d), чтобы фактически передать символ обратной косой черты в строке в JavaScript

Повторяемые параметры

Если вам нужно сопоставить маршруты с несколькими разделами, например /first/second/third, вам следует пометить параметр как повторяемый с помощью *(0 или более) и +(1 или более)

Это даст вам массив параметров вместо строки, а также потребует от вас передать массив при использовании именованных маршрутов

Их также можно комбинировать с пользовательским регулярным выражением, добавив их после закрывающих скобок

Чувствительные и строгие варианты маршрута

По умолчанию все маршруты не чувствительны к регистру и соответствуют маршрутам с косой чертой в конце или без нее. например, маршрут /users соответствует /users, /users/, и даже /Users/. Такое поведение можно настроить с помощью параметров strict и sensitive, их можно установить как на уровне маршрутизатора, так и на уровне маршрута

Дополнительные параметры

Вы также можете пометить параметр как необязательный, используя ?модификатор (0 или 1)

Обратите внимание, что * технически параметр также помечается как необязательный, но ? параметры не могут повторяться