XinAdmin 前端采用基于 React Router 的动态路由系统,支持权限控制的路由加载和多层级菜单结构。路由系统通过后端返回的菜单数据动态生成,实现了灵活的权限管理和菜单配置。
系统定义了三种主要的路由类型,以满足不同的业务需求:
每种类型都有特定的用途和配置方式,通过合理的组合可以构建复杂的页面结构。
路由配置基于 IMenus 接口定义,主要包含以下属性:
type: 路由类型(menu、route、nested-route)key: 路由的唯一标识符name: 路由名称path: 路由路径elementPath: 对应的页面组件路径icon: 菜单图标order: 排序权重local: 国际化标识hidden: 是否隐藏link: 是否为外链children: 子路由数组以下是一个典型的路由配置示例:
路由系统集成了权限控制机制,确保用户只能访问被授权的路由:
系统支持嵌套路由结构,特别适用于具有多个子页面的复杂功能模块。嵌套路由通过在父路由组件中使用 <Outlet> 组件来渲染子路由内容。嵌套路由也是动态生成的,基于后端返回的菜单数据。
在 XinAdmin 中,嵌套路由通过 nested-route 类型的菜单项来定义。
在路由生成过程中,当检测到 nested-route 类型的子菜单时,系统会自动创建嵌套路由结构
通过这种灵活的路由系统,XinAdmin 能够支持复杂的业务场景,同时保持良好的性能和用户体验。