addRouteMiddleware
Динамическое добавление middleware в приложение.
Маршрутные middleware — это навигационные охранники из папки
app/middleware/ (если не переопределено).Тип
function addRouteMiddleware (name: string, middleware: RouteMiddleware, options?: AddRouteMiddlewareOptions): void
function addRouteMiddleware (middleware: RouteMiddleware): void
interface AddRouteMiddlewareOptions {
global?: boolean
}
Параметры
name
- Тип:
string|RouteMiddleware
Строка (имя) или функция типа RouteMiddleware. Функция получает целевой маршрут to и текущий from (объекты маршрута Vue).
Подробнее: свойства объекта маршрута.
middleware
- Тип:
RouteMiddleware
Второй аргумент — функция типа RouteMiddleware с to и from. Необязателен, если первым передан уже функция.
options
- Тип:
AddRouteMiddlewareOptions
Необязательный объект. global: true — middleware глобальный (применяется при каждой смене маршрута). По умолчанию false.
Примеры
Именованный middleware
Имя — строка первым аргументом, функция — вторым:
app/plugins/my-plugin.ts
export default defineNuxtPlugin(() => {
addRouteMiddleware('named-middleware', () => {
console.log('именованный middleware из плагина')
})
})
При определении в плагине переопределяет одноимённый middleware из app/middleware/.
Глобальный middleware
Два варианта:
- Передать только функцию первым аргументом (без имени) — она считается глобальной и выполняется при каждой смене маршрута.app/plugins/my-plugin.ts
export default defineNuxtPlugin(() => { addRouteMiddleware((to, from) => { console.log('анонимный глобальный middleware при каждой смене маршрута') }) }) - Третий аргумент
{ global: true }для именованного middleware:app/plugins/my-plugin.tsexport default defineNuxtPlugin(() => { addRouteMiddleware('global-middleware', (to, from) => { console.log('глобальный middleware при каждой смене маршрута') }, { global: true }, ) })