[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

Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
你好,我正在使用 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