addRouteMiddleware

addRouteMiddleware()는 애플리케이션에 미들웨어를 동적으로 추가하는 헬퍼 함수이다.

경로 미들웨어는 Nuxt 애플리케이션의 middleware/ 디렉토리에 저장된 탐색 가드다(달리 설정하지 않는 한).

 

Type

addRouteMiddleware (name: string | RouteMiddleware, middleware?: RouteMiddleware, options: AddRouteMiddlewareOptions = {})

 

매개변수

  • name : 문자열이거나 RouteMiddleware 유형의 함수일 수 있다. 함수는 다음 경로 to를 첫 번째 인수로, 현재 경로 from를 두 번째 인수로 사용하며 둘 다 Vue 경로 객체다.
    • type : string | RouteMiddleware

참고) 경로 개체의 사용 가능한 속성.

  • middleware : 두 번째 인수는 RouteMiddleware 유형의 함수다. 위와 동일하게 to  from 경로 객체를 제공한다. addRouteMiddleware()의 첫 번째 인수가 이미 함수로 전달된 경우 선택 사항이 된다.
    • type : RouteMiddleware
  • options : 선택적 options 인수를 사용하면 global 값을 true로 설정하여 라우터 미들웨어가 전역인지 여부를 나타낼 수 있다(기본적으로 false로 설정됨).
    • type : AddRouteMiddlewareOptions

 

사용 예

익명 경로 미들웨어

익명 경로 미들웨어에는 이름이 없습니다. 함수를 첫 번째 인수로 사용하면 두 번째 middleware 인수는 필요없다.

// plugins/my-plugin.ts

export default defineNuxtPlugin(() => {
  addRouteMiddleware((to, from) => {
    if (to.path === '/forbidden') {
      return false
    }
  })
})

 

명명된 경로 미들웨어

명명된 경로 미들웨어는 문자열을 첫 번째 인수로, 함수를 두 번째 인수로 사용한다.

플러그인에 정의되면 middleware/ 디렉토리에 있는 동일한 이름의 기존 미들웨어를 재정의한다.

 

// plugins/my-plugin.ts

export default defineNuxtPlugin(() => {
  addRouteMiddleware('named-middleware', () => {
    console.log('named middleware added in Nuxt plugin')
  })
})

 

 

글로벌 경로 미들웨어

선택적인 세 번째 인수를 설정{ global: true }하여 경로 미들웨어가 전역인지 여부를 나타낸다.

// plugins/my-plugin.ts

export default defineNuxtPlugin(() => {
  addRouteMiddleware('global-middleware', (to, from) => {
      console.log('global middleware that runs on every route change')
    },
    { global: true }
  )
})

'Nuxt 공식문서 번역 > Utils' 카테고리의 다른 글

clearNuxtState  (0) 2023.12.15
clearNuxtData  (1) 2023.12.15
clearError  (0) 2023.12.15
abortNavigation  (0) 2023.12.15
$fetch  (0) 2023.12.15
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유