[dynamicRoutes] 动态路由解决方案。 #10898
xXAvoraXx
started this conversation in
Show and tell
Replies: 4 comments 19 replies
-
为什么要创建动态路由,用于什么场景? |
Beta Was this translation helpful? Give feedback.
14 replies
-
在umi中 路由配置文件包含了 菜单配置,这也是把很多人搞懵逼的原因, 在 以下示例 中 DynamicPage 组件 可以获取当前用户请求的路径,动态生成页面内容 config/routes.ts [
...others,
{
//后台数据库中查找到的 AntdMenu 列表动态构建的树形路径
locale: false,
hideInMenu: true,
name: 'dynamic_SubModulePage',
path: '*',
// path: '/:module/:subModule/:pageName',
component: './DynamicPage',
}] app.tsx // ProLayout 支持的api https://procomponents.ant.design/components/layout
export const layout: RunTimeLayoutConfig = ({ initialState, setInitialState }) => {
return {
logout: async (initialState) => {
await authService.logout();
},
menu: {
// defaultOpenAll: true,
// hideMenuWhenCollapsed: true,
// ignoreFlatMenu: true,
// 每当 initialState?.currentUser?.userid 发生修改时重新执行 request
params: {
userId: initialState?.currentUser?.name,
},
//Menu 只是 menu ,不要妄想操作 路由。 堆在这里不要动,留个纪念
//动态Menu可以指定一个参数路由
// 如何动态创建菜单?后台加载🧐[问题] #9920
//https://github.com/ant-design/ant-design-pro/issues/9920
request: async (params: any, defaultMenuData: MenuDataItem[]) => {
if (window.__POWERED_BY_WUJIE__) {
return defaultMenuData;
}
//console.log('monitor: menu.request initialState: ', initialState);
if (initialState) {
const serverSideMenudata = initialState?.settings?.menuData;
if (serverSideMenudata) {
return serverSideMenudata;
}
}
return defaultMenuData;
},
},
....others
} |
Beta Was this translation helpful? Give feedback.
1 reply
-
高度自定义还是用procomponet 的prolayut掌控性更好一些
如果已经基于antdpro 做的开发很容易实现迁移
…---原始邮件---
发件人: ***@***.***>
发送时间: 2023年10月18日(周三) 晚上10:10
收件人: ***@***.***>;
抄送: "Tony ***@***.******@***.***>;
主题: Re: [ant-design/ant-design-pro] [dynamicRoutes] 动态路由解决方案。 (Discussion #10898)
文献资料不足有点令人困惑。我从你的陈述中了解到,系统内的路线应该是静态定义的,而菜单来自数据库更为准确。
但在这种情况下该如何操作呢?
根据用户的授权级别,"/"重定向页面可能会有所不同。
我们不使用基于角色的授权,因此路由定义中的 "access"功能对我们毫无用处。
我们希望防止用户通过猜测找到静态路由。分配给每个用户的路由信息来自数据库。这些路由信息不一定要显示在菜单中,有些路由可能不会显示在菜单中,但我们必须防止用户访问该路由。
所有这些都由 "Authorization Layer "决定。参见 -> openfga.dev
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you commented.Message ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
3 replies
-
哈哈,继续吧,都是我躺过的坑
…---原始邮件---
发件人: ***@***.***>
发送时间: 2023年10月19日(周四) 凌晨4:34
收件人: ***@***.***>;
抄送: "Tony ***@***.******@***.***>;
主题: Re: [ant-design/ant-design-pro] [dynamicRoutes] 动态路由解决方案。 (Discussion #10898)
目前,Umi 的 patchRoutes 功能可以解决这个问题。我目前正打算用 umijs 编写一个插件,是否可以将 patchRoutes 结构用作插件?
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you commented.Message ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
你好,我正在使用 Ant Design Pro V5,研究如何创建动态路由。在我的研究中,我找到了一些示例,并且通过修改这些示例,我得到了一个可工作的版本。我想与您分享这些代码并讨论一下。
utils-> dynamicRoutes-> index.ts
utils -> dynamicRoutes -> typing.d.ts
utils -> dynamicRoutes -> routes.ts
app.tsx
global typing.d.ts
Beta Was this translation helpful? Give feedback.
All reactions