Nuxt 3路由中间件触发无限重定向问题求助
Nuxt3自定义路由中间件无限重定向问题解决
问题原因
- 未判断目标路由是否为跳转目的地:如果该中间件是全局生效或作用于
/about页面,每次跳转到/about时都会再次触发中间件,重复执行跳转逻辑,形成无限循环。 navigateTo未通过return返回:Nuxt3路由中间件中,必须返回navigateTo才能终止当前路由流程,否则原路由逻辑会继续执行,加重异常。
修复后的代码
export default defineNuxtRouteMiddleware((to, from) => { const user = { id: 1, name: "James" }; if (process.server) { // 仅当用户不在/about页面时才执行跳转 if (user.id === 1 && to.path !== '/about') { console.log('confirmed'); // 返回navigateTo终止当前路由并执行跳转 return navigateTo('/about'); } } })
额外说明
- 若使用全局中间件,可根据需求添加更多路由排除规则,避免对特定页面触发不必要的逻辑。
- 确保中间件的应用范围符合业务需求,比如仅在特定页面路由上启用该中间件,而非全局生效。
内容的提问来源于stack exchange,提问作者TheTechInnovator
相关产品推荐
相关产品推荐

