1.权限拦截的逻辑
2.代码实列
// 前置守卫
// next 是前置守卫必须执行的钩子函数 next必须执行 如果不执行 页面就不跳转了
// next() 放过
// next(false)跳装终止
// next(地址) 跳装到某个地址
// 路由的前置守卫
// 定义白名单 所有不受权限控制的页面
const whiteList = ['/login', '/404']
router.beforeEach(function(to, from, next) {
// 开启进度条
nprogress.start()
if (store.getters.token) {
// 如果有token的话在判断是不是去登录页
if (to.path === '/login') {
// 表示去登录页
next('/') // 跳装到登录页面
} else {
next() // 如果不是 直接放行
}
} else {
// 如果没有token的话
if (whiteList.indexOf(to.path) > -1) {
// 如果找到了 白名单直接放行
next()
} else {
next('/login')
}
}
nprogress.done() // 手动强制更关闭一次,为了解决手动切换地址是 进度条不关闭的问题
})
// 后置守卫
router.afterEach(function() {
nprogress.done() // 关闭进度条
})