全局拦截 beforeEach(to, from,next)
- to:router即将进入的路由对象
- from:当前导航即将离开的路由
- next:Function,进行管道中的一个钩子,如果执行完了,则导航的状态就是 confirmed (确认的);否则为false,终止导航。
{
path: '/login',
meta: { title: '登录', isPublic: true },
component: () => import('../components/Login.vue'),
}
// 在meta上添加isPublic:true 全局拦截时校验否false或者不写时需要校验是否登录
router.beforeEach((to, from, next) => {
//路由发生变化修改页面title
if (to.meta.title) {
document.title = to.meta.title
}
//全局拦截是否登录
if (!to.meta.isPublic && !localStorage.token) {
return next('/login')
}
next()
})
单个路由拦截 beforeEnter(to, from,next)
{
path: '/release/miner',
meta: { title: '发布矿机' },
beforeEnter: function(to, from, next) {
if (localStorage.miners_level < 1) {
next(false) //或者返回你需要的地址
return alert('xxxxx')
}
next()
},
component: () => import('../views/ReleaseMiner.vue'),
}