热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

关于vueelementadmin中的router问题

在router.beforeEach中添加身份验证条件之后

在router.beforeEach中添加身份验证条件之后

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
router.beforeEach((to, from, next) => {

  NProgress.start() // start progress bar

  if (getToken()) {

    // determine if there has token

    /* has token*/

    if (to.path === '/login') {

      next({ path: '/' })

      NProgress.done() // if current page is dashboard will not trigger    afterEach hook, so manually handle it

    } else {





      if(store.getters.userRole == 1 || store.getters.userRole == 2){

        router.addRoutes(asyncRoutes) // 动态添加可访问路由表

        // console.log(router)

        // console.log(to)

        next({ ...to, replace: true })

        // next({ path: '/' })

      }else{

        router.addRoutes(constantRoutes) // 动态添加可访问路由表

        next({ ...to, replace: true })

      }

    }

  } else {

    // alert('获取失败')

    /* has no token*/

    if (whiteList.indexOf(to.path) !== -1) {

      // 在免登录白名单,直接进入

      next()

    } else {

      next(`/login?redirect=${to.path}`) // 否则全部重定向到登录页

      NProgress.done() // if current page is login will not trigger afterEach hook, so manually handle it

    }

  }

})

浏览器报错内存泄漏,Maximum call stack size exceeded

下面是我的路由

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
export const cOnstantRoutes= [

  {

    path: '/redirect',

    component: Layout,

    hidden: true,

    children: [

      {

        path: '/redirect/:path*',

        component: () => import('@/views/redirect/index')

      }

    ]

  },

  {

    path: '/login',

    component: () => import('@/views/login/index'),

    hidden: true

  },

  {

    path: '/auth-redirect',

    component: () => import('@/views/login/authredirect'),

    hidden: true

  },

  {

    path: '/404',

    component: () => import('@/views/errorPage/404'),

    hidden: true

  },

  {

    path: '/401',

    component: () => import('@/views/errorPage/401'),

    hidden: true

  },

  {

    path: '',

    component: Layout,

    redirect: 'dashboard',

    children: [

      {

        path: 'dashboard',

        component: () => import('@/views/dashboard/index'),

        name: 'Dashboard',

        meta: { title: 'dashboard', icon: 'dashboard', noCache: true, affix: true }

      }

    ]

  },

  {

    path: 'dashboard',

    component: () => import('@/views/dashboard/index'),

    // name: 'Dashboard',

    meta: { title: 'dashboard', icon: 'dashboard', noCache: true, affix: true }

  }

  // {

  //   path: '/documentation',

  //   component: Layout,

  //   children: [

  //     {

  //       path: 'index',

  //       component: () => import('@/views/documentation/index'),

  //       name: 'Documentation',

  //       meta: { title: 'documentation', icon: 'documentation', affix: true }

  //     }

  //   ]

  // },

  // {

  //   path: '/guide',

  //   component: Layout,

  //   redirect: '/guide/index',

  //   children: [

  //     {

  //       path: 'index',

  //       component: () => import('@/views/guide/index'),

  //       name: 'Guide',

  //       meta: { title: 'guide', icon: 'guide', noCache: true }

  //     }

  //   ]

  // }

]



export default new Router({

  // mode: 'history', // require service support

  scrollBehavior: () => ({ y: 0 }),

  routes: constantRoutes

})



export const asyncRoutes = [



  // 初级系统不支持用户管理

  // {

  //   path:'/users',

  //   component:Layout,

  //   children:[

  //     {

  //       path:'',

  //       component:() => import('@/views/users/users'),

  //       name:'users',

  //       meta: { title: 'users', icon: 'peoples', noCache: true }

  //     }



  //   ]

  // },

  // {

  //   path: '',

  //   component: Layout,

  //   redirect: 'dashboard',

  //   children: [

  //     {

  //       path: 'dashboard',

  //       component: () => import('@/views/dashboard/index'),

  //       name: 'Dashboard',

  //       meta: { title: 'dashboard', icon: 'dashboard', noCache: true, affix: true }

  //     }

  //   ]

  // },



  // {

  //   path: '/redirect',

  //   component: Layout,

  //   hidden: true,

  //   children: [

  //     {

  //       path: '/redirect/:path*',

  //       component: () => import('@/views/redirect/index')

  //     }

  //   ]

  // },

  {

    path: '/aisle',

    component: Layout,

    children: [

      {

        path: '',

        component: () => import('@/views/aisle/aisle'),

        name: 'aisle',

        meta: { title: 'aisle', icon: 'tree', noCache: true }

      }

    ]

  },



推荐阅读
  • 在项目需要国际化处理时,即支持多种语言切换的功能,通常有两种方案:单个包和多个包。本文将重点讨论单个包的实现方法。 ... [详细]
  • 小编给大家分享一下Vue3中如何提高开发效率,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获, ... [详细]
  • java解析json转Map前段时间在做json报文处理的时候,写了一个针对不同格式json转map的处理工具方法,总结记录如下:1、单节点单层级、单节点多层级json转mapim ... [详细]
  • vue引入echarts地图的四种方式
    一、vue中引入echart1、安装echarts:npminstallecharts--save2、在main.js文件中引入echarts实例:  Vue.prototype.$echartsecharts3、在需要用到echart图形的vue文件中引入:   importechartsfrom"echarts";4、如果用到map(地图),还 ... [详细]
  • 自然语言处理(NLP)——LDA模型:对电商购物评论进行情感分析
    目录一、2020数学建模美赛C题简介需求评价内容提供数据二、解题思路三、LDA简介四、代码实现1.数据预处理1.1剔除无用信息1.1.1剔除掉不需要的列1.1.2找出无效评论并剔除 ... [详细]
  • 本文介绍了如何在 Vue 3 组合 API 中正确设置 setup() 函数的 TypeScript 类型,以避免隐式 any 类型的问题。 ... [详细]
  • 本文详细介绍了`android.os.Binder.getCallingPid()`方法的功能和应用场景,并提供了多个实际的代码示例。通过这些示例,开发者可以更好地理解如何在不同的开发场景中使用该方法。 ... [详细]
  • 编译原理中的语法分析方法探讨
    本文探讨了在编译原理课程中遇到的复杂文法问题,特别是当使用SLR(1)文法时遇到的多重规约与移进冲突。文章讨论了可能的解决策略,包括递归下降解析、运算符优先级解析等,并提供了相关示例。 ... [详细]
  • 本文介绍了 Oracle SQL 中的集合运算、子查询、数据处理、表的创建与管理等内容。包括查询部门号为10和20的员工信息、使用集合运算、子查询的注意事项、数据插入与删除、表的创建与修改等。 ... [详细]
  • 本文介绍了如何使用Aspose库将Office文件(如Word、PowerPoint)转换为HTML文件,并详细说明了在转换过程中可能出现的乱码问题及其解决方案。 ... [详细]
  • 用C语言实现的科学计算器,支持2种常量,10种基本函数,Ans寄存器。相对来说拓展性应该是不错的,思路是首先化简复杂名称的函 ... [详细]
  • 2023年最新指南:如何在PHP中屏蔽警告和错误
    本文详细介绍了如何在PHP中屏蔽警告和错误,包括多种方法和最佳实践,帮助开发者提升代码质量和安全性。 ... [详细]
  • 本文介绍了Go语言中正则表达式的基本使用方法,并提供了一些实用的示例代码。 ... [详细]
  • 第十九天 - 类的约束、异常处理与日志记录
    本文介绍了如何通过类的约束来确保代码的一致性,以及如何使用异常处理和日志记录来提高代码的健壮性和可维护性。具体包括抛出异常、使用抽象类和方法,以及异常处理和日志记录的详细示例。 ... [详细]
  • 本文节选自《NLTK基础教程——用NLTK和Python库构建机器学习应用》一书的第1章第1.2节,作者Nitin Hardeniya。本文将带领读者快速了解Python的基础知识,为后续的机器学习应用打下坚实的基础。 ... [详细]
author-avatar
马婷婷0514_761
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有