vue2中如何在路由守卫中进行路由拦截
时间: 2023-06-26 08:05:51 浏览: 128
vue+axios 前端实现登录拦截的两种方式(路由拦截、http拦截)
5星 · 资源好评率100%
在 Vue2 中,可以使用 `vue-router` 提供的路由守卫来拦截路由。下面是一个简单的例子:
```javascript
import Vue from 'vue'
import Router from 'vue-router'
Vue.use(Router)
const router = new Router({
routes: [
// ...
]
})
router.beforeEach((to, from, next) => {
// 判断用户是否已经登录
const isAuthenticated = localStorage.getItem('user')
if (to.matched.some(record => record.meta.requiresAuth) && !isAuthenticated) {
// 如果用户未登录,跳转到登录页
next('/login')
} else {
next()
}
})
export default router
```
在上面的例子中,使用 `router.beforeEach` 注册一个全局前置守卫,用于拦截路由。在守卫中,可以通过 `to` 对象获取要跳转的路由信息,通过 `from` 对象获取当前路由信息,通过 `next` 参数控制路由跳转。
在上面的例子中,我们假设用户需要登录才能访问某些页面。守卫中判断用户是否已经登录,如果未登录,则跳转到登录页;否则,继续访问目标页面。这里使用了 `localStorage` 来存储用户信息,实际应用中可以根据具体需求进行调整。
阅读全文