Nuxt 3 已于 31 July 2026 结束生命周期
此版本将不再接收错误修复或安全补丁。 升级到 Nuxt 4 或获取 HeroDevs 提供的延长支持
abortNavigation
abortNavigation 是一个辅助函数,用于阻止导航发生,并在设置了参数时抛出错误。
Maschinelle Übersetzung ·0 % geprüft
abortNavigation 只能在路由中间件处理程序中使用。类型
Signatur
export function abortNavigation (err?: Error | string): false参数
err
类型:
Error|string可选的错误信息,
abortNavigation将会抛出该错误。
示例
下面的示例演示如何在路由中间件中使用 abortNavigation 来阻止未授权的路由访问:
middleware/auth.ts
export default defineNuxtRouteMiddleware((to, from) => {
const user = useState('user')
if (!user.value.isAuthorized) {
return abortNavigation()
}
if (to.path !== '/edit-post') {
return navigateTo('/edit-post')
}
})err 作为字符串
你可以将错误作为字符串传递:
middleware/auth.ts
export default defineNuxtRouteMiddleware((to, from) => {
const user = useState('user')
if (!user.value.isAuthorized) {
return abortNavigation('权限不足。')
}
})err 作为错误对象
你也可以将错误作为一个 Error 对象传递,比如在 catch 块中捕获的错误:
middleware/auth.ts
export default defineNuxtRouteMiddleware((to, from) => {
try {
/* 可能抛出错误的代码 */
} catch (err) {
return abortNavigation(err)
}
})