1、Vue:router的beforeEach与afterEach钩子函数
在路由跳转的时候,我们需要一些权限判断或者其他操作。这个时候就需要使用路由的钩子函数。
定义:路由钩子主要是给使用者在路由发生变化时进行一些特殊的处理而定义的函数。
总体来讲vue里面提供了三大类钩子,两种函数
1、全局钩子
2、某个路由的钩子
3、组件内钩子
两种函数:
1、Vue.beforeEach(function(to,form,next){}) /在跳转之前执行/
2、Vue.afterEach(function(to,form))/在跳转之后判断/
beforeEach函数有三个参数:
(1)to:router即将进入的路由对象
(2)from:当前导航即将离开的路由
(3)next:Function,进行管道中的一个钩子,如果执行完了,则导航的状态就是 confirmed (确认的);否则为false,终止导航。
afterEach函数不用传next()函数
https://www.cnblogs.com/WQLong/p/8135553.html
https://www.cnblogs.com/wuvkcyan/p/9311155.html
2、代码分析
const router = new Router({
routes: baseRoutes,
mode: 'history'
});
router.beforeEach((to, from, next) => {
iView.LoadingBar.start();
const isLogin = getToken();
if (!isLogin | isLogin === []) {
// 如果没有登录 需要跳转到uuap去登录,uuap回调之后验证
if (to.path !== '/login'