定义:在路由跳转过程中(从登录login路由到main主界面)在跳转前,跳转中,跳转后定义的对应点的处理函数。
1. 全局前置导航守卫 beforeEach
三个必要参数:
to
即将要进入的目标,用一种标准化的方式from
当前导航正要离开的路由,用一种标准化的方式naxt
继续向下执行(注意:naxt()是一个函数,调用的时候继续执行路由跳转,不调用就会停止跳转)创建全局前置导航守卫的步骤:
permission.js
的 js 文件router
路由模块main.js
入口文件内引入 全局前置导航守卫文件// main.js入口文件
import '@/permission.js' // 引入全局前置导航守卫
import router from '@/router' // 引入router
/**
* 创建全局前置守卫 beforeEach
* to 即将要进入的目标,用一种标准化的方式
* from 当前导航正要离开的路由,用一种标准化的方式
* naxt 继续向下执行
*/
router.beforeEach((to,from,next)=>{
console.log(to)
console.log(from)
next() // 放行
}
登录身份验证
登录成功之后才能访问主界面
beforeEach
处理身份认证next()
Token
【判断】router.beforeEach((to,from,next)=>{
// console.log();
// 白名单,不需要登录认证的路由
let whiteArry = ['/SignIn','/']
// 当前路由
if(whiteArry.indexOf(to.path)!==-1){
next() // 放行
return
}
// 登录身份认证
let token = localStorage.getItem('Token')
if(token){
// 已登录
next()
}else{
next('/SignIn')
}
})