Vue Router全局前置守卫beforeEach
vue-router提供的导航守卫主要用来通过跳转或取消的方式守卫导航。
今天介绍一种导航守卫:全局前置守卫beforeEach
注册方式:
const router = new Router({
...
})
router.beforeEach((to, from, next) => {
})
当一个导航触发时,全局前置守卫按照创建顺序调用。守卫是异步解析执行,此时导航在所有守卫 resolve 完之前一直处于 等待中。
参数:
to
: 即将要进入的目标 路由对象from
: 当前导航正要离开的路由next
: 方法,一定要调用该方法来 resolve 这个钩子
next
的执行效果依赖于next
方法的调用参数
next()
: 进行管道中的下一个钩子next(false)
: 中断当前的导航next('/)或next({ path: '/' })
: 跳转到一个不同的地址, 当前的导航被中断,然后进行一个新的导航
注意: 确保 next 函数在任何给定的导航守卫中都被严格调用一次。它可以出现多于一次,但是只能在所有的逻辑路径都不重叠的情况下,否则钩子永远都不会被解析或报错。
使用示例:
router.beforeEach((to, from, next) => {
if (!storage.get(ACCESS_TOKEN)) {
// 用户未登陆,进入登陆页面
next({name: 'Login'})
} else {
next()
}
})
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」