📅  最后修改于: 2023-12-03 15:12:15.642000             🧑  作者: Mango
路由守卫是前端框架中常用的一个功能,它可以在路由跳转的不同阶段执行一些逻辑,比如:检查是否登录、获取用户信息、根据用户权限进行路由权限控制等。
路由守卫可分为以下三种:
使用路由守卫需要在路由配置文件中进行设置,如下所示:
import Vue from 'vue'
import VueRouter from 'vue-router'
Vue.use(VueRouter)
const router = new VueRouter({
mode: 'history',
routes: [
{
path: '/login',
component: () => import('@/views/Login')
},
{
path: '/home',
component: () => import('@/views/Home'),
meta: {
requireAuth: true
}
}
]
})
router.beforeEach((to, from, next) => {
if (to.meta.requireAuth && !localStorage.getItem('token')) {
next('/login')
} else {
next()
}
})
export default router
在上述代码中,我们通过 router.beforeEach
方法添加了一个全局守卫,用来检查用户是否登录。在进入路由目标页(to
)之前,会先执行此方法。
我们的逻辑是,如果用户需要登录(即 to.meta.requireAuth
为 true),且当前没有登录(即 localStorage 中没有 token),则跳转到登录页面(next('/login')
),否则继续路由跳转(next()
)。
路由守卫在前端框架中应用非常广泛,其主要的应用场景有以下几个方面:
路由守卫是前端框架中非常重要和实用的一个功能,经过上述的介绍,相信大家已经对路由守卫有了一个更深入的理解。希望各位开发者在实际项目开发中能够充分发挥路由守卫的作用,让我们的代码更加优雅、健壮和规范。