今天在运行本地项目的时候,vue-router报错:RangeError: Maximum call stack size exceeded,当时发现自己在run dev的时候,命令行里面是没有任何问题的,在进入界面的时候,也不跳转,后面去看了自己配置的路由,找到解决方法

首先,我的正常路由配置

 

{

     path: '*',

     redirect: '/userhome',

},

{

     path: '/firstshopping',

     component: firstshopping

},

{

      path: '/allshopping',

      component: allshopping

},

这里都是没有问题的,问题出在拦截配置

 

router.beforeEach((to, from, next) => {

       if (to.matched.some(res => res.meta.requireAuth)) {

             if (sessionStorage.getItem('sessiontoken')) {

                     console.log(1111)

                     next()

             } else {

                      console.log(22222) 

                      next({

                              path: '/login',

                              query: { redirect: to.fullPath } 

                      })

              }

        } else {

              next()

        }

})

 

我浏览器输入的结果,是一直不停的死循环

 

 

然后我去查看自己的路由配置,发现自己之前是把login的路由配置给注释了,之前觉得既然在拦截里面配置路由跳转,路由里面不应该再次配置一次,现在回想应该是找不到对应的路由和组件,只需要把注释的路由代码打开,就正常运行了

打开注释的地方

一般vue-router报错说明是路由配置出问题了,或者跳转调用路由的时候出现死循环,RangeError: Maximum call stack size exceeded是死循环出现的语句

希望能帮助到大家

 

 

Logo

基于 Vue 的企业级 UI 组件库和中后台系统解决方案,为数万开发者服务。

更多推荐