Skip to content
快速导航

abortNavigation - 阻止导航跳转

abortNavigation仅在路由中间件内可用。

abortNavigation是一个可以阻止导航跳转的辅助方法。其唯一的参数是可选的,当传入参数后会抛出一个错误。

Type

abortNavigation(err?: Error | string): false

参数

  • Type: Error | string

可选的Error参数

示例

下面的示例显示了如何在路由中间件中使用abortNavigation来阻止未经授权的路由访问:

// ~/middleware/auth.ts
export default defineNuxtRouteMiddleware((to, from) => {
  const user = useState('user')

  if (!user.value.isAuthorized) {
    return abortNavigation()
  }
 
  return navigateTo('/edit-post')
})

当参数是String

可以将错误作为字符串传递:

// ~/middleware/auth.ts
export default defineNuxtRouteMiddleware((to, from) => {
  const auth = useState('auth')

  if (!user.value.isAuthorized) {
    abortNavigation('Insufficient permissions.')
  }
})

当参数是Error对象时

可以将Error作为错误对象传递,例如,由catch块捕获:

// ~/middleware/auth.ts
export default defineNuxtRouteMiddleware((to, from) => {
  try {
    // 可能抛出一个错误
  } catch (err) {
    abortNavigation(err)
  }
})