Ant Design Pro脚手架 点击查看阅读
混合导航:
顶部导航和侧边栏导航实现联动效果,点击不同的顶部导航按钮会显示对应的子菜单项。
实现点:
1. 路由的配置
菜单展示
我们可以在 route 中进行 menu 相关配置,来决定当前路由是否会被渲染在菜单中。详细配置说明
当不需要在菜单中展示时,可以在路由上配置 hideInMenu 或者删除 menu 相关的配置;
当不需要展示 children 时,可以在路由上配置 hideChildrenInMenu;
当不需要展示自己,只展示 children,可以在路由上配置 flatMenu;
如果没有配置 menu,没有配置 name 的话,则该路由不会在侧边栏中出现。
嵌套布局
有时我们的页面可能会有一些全局的通用的处理逻辑或者 UI,会希望在页面加载前完成,通常会希望可以在内置布局内部再包一层 layout 来完成需求。
// config/routes.ts
export default [
{
path: '/',
menu: {
flatMenu: true, //当不需要展示自己,只展示 children,可以在路由上配置 flatMenu;
},
routes: [
{
path: '/',
redirect: '/operate/user/user-management-outside',
},
{
path: '/operate',
name: '运营后台',
icon: 'smile',
routes: [
{
path: '/operate',
redirect: '/operate/user/user-management-outside',// 路由重定向,解决点击一级菜单页面显示空白的问题
},
{
path: 'user',
name: '用户管理',
icon: 'icon-yonghuguanli',
routes: [
{
path: 'user-management-outside',
name: '企业用户管理',
component: './user/management',
exact: true,
},
{
path: 'approve',
name: '认证审核',
component: './approve',
access: 'normalRouteFilter'
},
],
},
// 继续添加子菜单
],
},
{
path: '/nft',
name: 'NFT',
icon: 'smile',
routes: [
{
path: '/nft',
redirect: '/nft/nft-marketing', // 路由重定向,解决点击一级菜单页面显示空白的问题
},
{
path: 'nft-marketing',
name: '营销管理',
icon: 'icon-yingxiao',
component: './nft/nftMarketing/index',
exact: true,
}
],
},
// 添加顶部导航以及该顶部导航下对应的子菜单
]
},
];
2. layout的模式
菜单布局展示方式的修改
有时菜单可能需要于顶部显示,左侧显示,或者顶部显示一级菜单,左侧显示二三级菜单。我们可以修改 defaultSettings 中的 layout 的配置来决定菜单的展示方式。
-
top 菜单于顶部展示
-
side 菜单于左侧展示
-
mix 菜单于顶部和左侧混合展示,需要注意,当 mix 模式时,需要添加
splitMenus: true
,顶部才可以正确展示一级菜单同时,当使用
mix
模式后,点击一级菜单,并不会直接定位到第一个子级菜单页面,而是会呈现空白页面,需要于配置中设置一下redirect
的地址
参考链接:
Pro 的 Layout 组件 - Ant Design Pro
布局 - Ant Design Pro
https://www.cnblogs.com/steamed-twisted-roll/p/15394378.html