router.beforeEach 执行了2次

页面上任何一个路由跳转都会输出两次,这是什么引起的

router.beforeEach((to, from, next) => {
    console.log(to,from);
  next();
});

找的太痛苦,从头到尾查一遍,到处注释排查差点准备重新写了,最后发现是cdnrouter的版本号问题,换了个版本就好了
-- -- -- -- -- -- -- -- -- -- -- -- -- --

问题补充:目前的问题是所有路由页刷新跳转都会执行两次输出,我贴出来的全局路由拦截实际业务是根据路由的name值塞到百度统计里,axios的拦截器也没有写跳转方法,未登录时会有一个提示,如果我不使用懒加载的方式导入路由那beforeEach是只输出一次的

-- -- -- -- -- -- -- -- -- -- -- -- -- --
找到原因了如果直接引入只会执行一次
import login from '@/login';
如果懒加载引入
const login = () => import('@/login');
就会执行两次,应该如何解决

阅读 11.8k
3 个回答

换了个版本号就可以用了,以后有时间一定要把源码看一看,现在只是在应用,出了问题也不知道怎么排查问题,搜又搜不到,哎

新手上路,请多包涵

看看是否发生了重定向

我觉得应该是重定向吧。一般项目第一次执行在'login'页,判断存在token之后,又从login跳转到其他页面,所以就会执行两次。
你可以看看你的axios拦截器之类的有没有设置重定向

推荐问题