This topic created in 2191 days ago, the information mentioned may be changed or developed.
最近弄一个后台系统页面,后端发一个大型的权限树过来。其实就是比对 url 判断权限就可以了,如果有多级 switch 组件就要截断或者拼接 url 来比对。
这个 url 其实是和组件的嵌套关系耦合的,改起来真麻烦。
在路由拦截层面,react-router 都是在一个一个“关卡”手动搞权限判断,这个精度和操作空间是细了,但是管理起来好麻烦。
是 vue-router 给宠的?
8 replies 2020-06-04 20:52:54 +08:00  | | 4 Hasel Jun 4, 2020 #3 说的很对。react-router 给了你选择的权利,可以自己封装一个大一统的路由,也可以自己散布在各个组件中精细控制,一切取决你怎么使用而已。 封一个和 vue-router 一样的也很方便嘛。 |
 | | 5 yazoox Jun 4, 2020 不是很懂 react router 有没有讲解的比较好的?谢谢 |
 | | 7 aegisho Jun 4, 2020 按我们以前的设计 react-router 只是定义路径和组件的关系。权限的判断应该是在类似菜单组件中
举例:系统中有 100 个 react-router 定义的路径,这是不跟权限关联的 权限决定的是“用户可见的菜单”有多少个。
假设用户没有 A 路径的权限,他无法通过菜单进入,但是可以通过手输地址进入。 同样的,接口层也会做鉴权,所以用户直接进入是无效的。
如果期望用户手输地址也无法进入,可以考虑在 layout 组件中加一个判断,在 router change 时判断是否有权限,如果没有权限,直接跳转到 403 页面 |
 | | 8 soulmt Jun 4, 2020 router3 是和 vue-router 有点像的 router4 开始有了这个理念,这个理念很先进,但是也同样支持你希望的集中配置,但是去中心化的问题,集中配置也存在,当一个项目里面有上百个路由,而你却还要梳理各个路由之间的关系的时候你会很奔溃, 其实这东西没有一个完整的答案,既然是去中心化的开发,那么你应该用去中心的思路去梳理代码,如果是集中配置,那么就平铺式的梳理代码,自然各有各的好处, 有时候还是要兼容不同的思想 |