首先要在需要拦截的路由添加meta: {requireAuth: true},然后使用路由钩子函数beforeEach拦截处理
1.在路由中配置添加mate属性
export default {
path: '/we',
name: 'we',
//设置该路由是否需要登录验证
meta: {
requireAuth: true
},
component: ()=>import("../../views/we.vue") //实现路由懒加载
}
2.在main.js中设置全局路由钩子router.beforeEach,根据to.mate.requireAuth拿到该路由是否需要登录验证
router.beforeEach((to, from, next) => {
if (to.meta.requireAuth) { // 判断该路由是否需要登录权限
if(store.state.home.islogin){
next()
}else{
error()
}
}else{
next() //如果跳转的路由无需登录验证,直接放行
}
})