当前位置:网站首页 > 技术博客 > 正文

vue动态路由和静态路由



最近刚结束一个项目,然后再客户的百般刁难下又增加了项目新需求:
后台传来当前用户对应权限的路由表,前端通过调接口拿到后处理(后端处理路由)
vue项目实现动态路由的方式大体可分为两种:
1.第一种就是我们前端这边把路由写好,登录的时候根据用户的角色权限来动态展示路由,(前端控制路由)
详情可以看看这个人写的,感觉挺好的
https://segmentfault.com/a/75424,我当时看这个项目看了好久才明白一点逻辑,
因为大神的动态路由那里有好多层判断,并且穿插各种vuex,把小白的我都快搞懵逼了,对我启发很大,也正是这篇文章,给我提供了很多逻辑
2.第二种就是后台传来当前用户对应权限的路由表,前端通过调接口拿到后处理(后端处理路由)
这两种方法各有优点,效果都能实现,我们公司这次是要求通过第二种方法实现,原因就是公司项目里有一个专门的用户中心,里边逻辑很复杂,不好返给前端用户权限,担心路由放到前端
不安全(以上的话是公司的后台同学讲的,其实我也不知道,按照要求总不会有错),那好吧,抱着都试试、锻炼下自己能力的态度,
我们来搞第二种方法。

思路:

 

代码第一步,模拟的后台json数据路由表 :

每个路由都使用到组件Layout,这个组件是整体的页面布局:左侧菜单列,右侧页面,所以children下边的第一级路由就是你自己的开发的页面,meta里包含着路由的名字,以及路由对应的icon;因为可能会有多级菜单,所以会出现children下边嵌套children的情况;

 

当我们有了模拟数据后,我们可以写正常代码了,首先找到router文件夹下的index.js文件。咱们的路由配置一般都在router文件夹下,除非你们公司项目自己封装了多层,但是找到路由文件就行。

 

在然后我们在 src 文件permission.js文件中写代码(permission权限文件是直接在src文件夹下的,和router 平级,后边我们只需要把permission权限文件引入到main.js 文件下就好了)
在这里插入图片描述
我们引入文件
在这里插入图片描述

 

permission.js文件代码如下:

 
 

router/_import_development.js

 

动态路由也就基本完成了!

拿到遍历好的路由,进行左侧菜单渲染
上边的permission.js文件代码处理中会给 global.antRouter赋值,这是一个全局变量(可以用vuex替代),菜单那边拿到路由,进行渲染,(对于路由拦截那部分,应该还有很多优化的地方的)
在这里插入图片描述
可能遇到的问题:

 

思路是这样

 
 

然后再APP.vue文件中

 

AsyncImport.js

 

router.js文件中


                            

  • 上一篇: 依赖的let
  • 下一篇: linux停止ntp服务
  • 版权声明


    相关文章:

  • 依赖的let2025-04-06 20:30:03
  • 计算机的发展历史简述2025-04-06 20:30:03
  • ovs-vsctl2025-04-06 20:30:03
  • 二阶低通滤波器工作原理2025-04-06 20:30:03
  • 软件发布流程图2025-04-06 20:30:03
  • linux停止ntp服务2025-04-06 20:30:03
  • ps中高斯模糊之后怎么弄清晰2025-04-06 20:30:03
  • js 序列化和反序列化2025-04-06 20:30:03
  • 文本文件对比工具2025-04-06 20:30:03
  • 测试cpu的性能指标2025-04-06 20:30:03