动态路由
注意
不管是前端代码还是后端代码,肯定都有很多不完善的地方;每个人都有不同的开发习惯,虽然代码有所差异,但是思路是大同小异的,大家借鉴一下就行。 此项目分为两种情况,一种懂PHP的,那么可以根据的需求来开发项目,而是纯前端的话,除了在部署后端环境时,可以多多注意一下,在后端教程中,可以忽略不计。
# 前言
MiAdmin是实现了动态路由功能的,在菜单管理中对相应的菜单进行操作即可实现动态的左侧菜单。
# 实现
动态路由是根据官方文档中菜单的高级用法 (opens new window)来简单实现的。
menu: {
locale: false,
// 每当 initialState?.currentUser?.userid 发生修改时重新执行 request
params: initialState,
request: async (params, defaultMenuData) => {
const res = await getAdminUserMenu();
return loopMenuItem(res.data);
},
},
添加菜单
如果现在需要添加一个新的菜单,首先可以在菜单管理中添加需要添加的菜单,其次需要在 config/routes.js
路由文件下定义与新添加菜单相对于的路由,官方是这样说的服务端获取的菜单重定向不生效且 icon 不会自动转化。重定向需要配置在路由中才会生效。
我在网上找了一段时间,也没有找到一个比较好的办法,所以这也是这个动态路由的缺点,但是动态菜单是可以做到的。
菜单路由是与配置文件相对应来找到页面的,而菜单链接则是与后端相匹配,其实就是后端接口的路由,如果没有分配此菜单,那么就无法访问,也达到了权限的功能。
是否菜单
设置为不是菜单,那么该菜单以及所有自己在左侧就不会出现。
# 小结
MiAdmin的动态路由虽然不够完善,但是大致的效果是没问题的,不管是前端的显示,还是后端的权限,大家可以自己在网上寻找更好的办法来解决。
上次更新: 2022/06/08, 10:18:46