Vue Router предоставляет гибкие возможности для настройки
маршрутизации в приложениях на Vue.js. Среди ключевых параметров
маршрутов существуют два специальных режима: strict и
sensitive. Они влияют на поведение маршрутов при
сопоставлении URL с заданными шаблонами.
strictРежим strict контролирует строгость сопоставления слэшей
в конце маршрута. По умолчанию Vue Router не различает URL с завершающим
слэшем и без него. Например, маршрут /about и URL
/about/ будут считаться одинаковыми.
Синтаксис и использование:
const routes = [
{
path: '/about/',
component: About,
strict: true
}
];
Поведение при strict: true:
/about/ → совпадение с маршрутом./about → не совпадает, будет
перенаправление на 404 или другой маршрут./about// → не совпадает.Примечание: Режим strict особенно
полезен, когда необходимо четко контролировать URL-структуру приложения
и избегать дублирования страниц с разными вариантами слэшей.
sensitiveРежим sensitive управляет чувствительностью маршрута к
регистру символов. По умолчанию маршруты в Vue Router
регистронезависимы: /About и /about будут
сопоставлены с одинаковым маршрутом.
Синтаксис и использование:
const routes = [
{
path: '/profile',
component: Profile,
sensitive: true
}
];
Поведение при sensitive: true:
/profile → совпадение./Profile → не совпадает./PROFILE → не совпадает.Примечание: Режим sensitive позволяет
соблюдать единообразие URL в приложении, особенно при интеграции с
внешними системами, где регистр символов критичен.
strict и sensitiveОба режима могут использоваться одновременно для одного маршрута:
const routes = [
{
path: '/account/',
component: Account,
strict: true,
sensitive: true
}
];
Пример поведения:
| URL | Совпадение |
|---|---|
/account/ |
Да |
/account |
Нет |
/Account/ |
Нет |
/ACCOUNT/ |
Нет |
Это позволяет создавать маршруты с абсолютно предсказуемым сопоставлением, где важен как регистр символов, так и наличие завершающего слэша.
Важно понимать, что strict и sensitive не
влияют на параметры маршрутов (:id, :slug).
Например:
{
path: '/user/:id',
component: User,
sensitive: true,
strict: true
}
:id всегда сопоставляется как динамическая
часть URL.sensitive учитывает регистр только в статической
части маршрута (/user/).strict проверяет слэш после :id,
если маршрут определен с завершающим /.strict
предотвращает дублирование страниц с / и без
/.sensitive важно при интеграции с API, где путь строго
чувствителен к регистру.Эти режимы являются тонкими, но мощными инструментами настройки маршрутов в Vue Router, позволяя добиться точного контроля над поведением URL и повышая стабильность навигации в приложении.