Appearance
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)
}
})