Vue 路由守卫(路由钩子函数)

本文详细介绍了Vue中三种类型的路由守卫:全局路由钩子、单个路由独享守卫和组件内路由守卫,包括beforeEach、beforeEnter、beforeRouterEnter等函数的使用方法。

1、全局路由钩子函数 beforeEach beforeResolve afterEach,注意,使用vue-cli搭建的index路由文件里直接将router路由对象暴露出去,应当使用变量接收此路由对象,然后使用该变量来调用全局的路由钩子函数,最后把该变量暴露出去

 

2、单个路由独享的守卫 beforeEnter

 

 

3、组件内的路由守卫  beforeRouterEnter  、beforeRouterUpdate 和 beforeRouterLeave

路由钩子函数API文档

 

 

 

 

 

Vue路由守卫是一种用于控制页面访问权限的机制,它可以拦截路由请求并根据一定的规则进行处理或重定向。Vue路由守卫提供了一些钩子函数,可以在路由跳转的不同阶段进行处理,以实现不同的功能。 常用的Vue路由守卫钩子函数包括: - beforeEach:在路由跳转之前被调用,可以用于进行路由权限校验、记录用户访问记录等操作。 - afterEach:在路由跳转之后被调用,可以用于进行页面滚动、页面统计等操作。 - beforeRouteEnter:在路由进入之前被调用,可以用于在路由进入之前进行数据加载等操作。 - beforeRouteUpdate:在路由更新之前被调用,可以用于在路由更新之前进行数据加载等操作。 - beforeRouteLeave:在离开当前路由之前被调用,可以用于进行用户操作确认、数据保存等操作。 在使用Vue路由守卫时,需要在路由配置中进行注册。例如: ``` const router = new VueRouter({ routes: [ { path: '/home', component: Home, meta: { requiresAuth: true } }, { path: '/login', component: Login } ] }) router.beforeEach((to, from, next) => { const requiresAuth = to.matched.some(record => record.meta.requiresAuth) const isAuthenticated = auth.isAuthenticated() if (requiresAuth && !isAuthenticated) { next('/login') } else { next() } }) ``` 在上面的例子中,我们使用了beforeEach钩子函数来实现路由权限校验。通过判断路由的meta信息中是否需要权限校验,以及用户是否已经登录,来决定是否跳转到登录页面。如果需要跳转到登录页面,则调用next('/login')方法,否则调用next()方法来继续路由跳转。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值