umi 官方 issues 地址: github

代码

umi 开启 layout 后, 会把所有页面都放在 pro layout 中. 但是 登录页 或 其他一些页面 是不需要这个 layout 的. 可以通过菜单中的 layout:false 属性关闭这个当前路由的 layout 例子:

// IUmiRoute 是自己写的 ts 类型,方便输入. 代码在本文末尾

let router: IUmiRoute[] = [

{

name: '登录',

path: '/login',

component: "./Login",

layout:false,

}

// 其他的省略

]

export default router;

截图

自己的版本号和配置

"dependencies": {

"@ant-design/icons": "^4.7.0",

"@ant-design/pro-layout": "^7.1.9",

"@umijs/max": "^4.0.26",

"antd": "^4.23.6",

},

umi 的配置

import { defineConfig } from '@umijs/max';

import router from './router'; // 这个就是文章开头的那个代码

export default defineConfig({

// .... 其他配置省略.

// 集成 antd

antd: {},

// 集成 ProLayout

layout: {

title: '@umijs/max',

},

// 路由

routes: router

});

附赠一个路由的 TypeScript 类型

可能不全, 具体的可以看官方的文档… 自己再补一些.

/**

* 一些路由 hook : https://umijs.org/docs/guides/routes#%E8%B7%AF%E7%94%B1%E7%BB%84%E4%BB%B6%E5%8F%82%E6%95%B0

*

* 数据来源:

* https://procomponents.ant.design/components/layout/#%E5%92%8C-umi-%E4%B8%80%E8%B5%B7%E4%BD%BF%E7%94%A8

* https://beta-pro.ant.design/docs/advanced-menu-cn

* https://umijs.org/docs/max/layout-menu#%E6%89%A9%E5%B1%95%E7%9A%84%E8%B7%AF%E7%94%B1%E9%85%8D%E7%BD%AE

* https://pro.ant.design/zh-CN/docs/layout/#%E8%8F%9C%E5%8D%95%E5%B1%95%E7%A4%BA

* 可能有遗漏, 更多的类型可以到 pro-layout 中查询

*/

export interface IUmiRoute {

/**

* 地址栏路由

*

* @example

* /groups

* /groups/admin

* /users/:id

* /users/:id/messages

* /files/*

* /files/:id/*

* */

path?: string

/** 组件路径 , ("./"相对路径会从 pages 找起, 可以用 "@" 或 "../" 开头, 从 src 开始找 ) */

component?: string

/** 菜单的名字 */

name?: string

/** 图标 */

icon?: string

/** 指定外链打开形式,同a标签 */

target?: string | '_blank'

/** 移除 顶栏 */

headerRender?: false

/** 移除 页脚 */

footerRender?: false

/** 移除 菜单 */

menuRender?: false

/** 移除 菜单顶栏 (不显示菜单的 title 和 logo)*/

menuHeaderRender?: false

/** 权限配置,需要与 plugin-access 插件配合使用 (eg ?: canRead)*/

access?: string

/** 隐藏子菜单 */

hideChildrenInMenu?: true

/** 隐藏自己和子菜单 */

hideInMenu?: true

/** 在面包屑中隐藏 */

hideInBreadcrumb?: true

/** 隐藏自己,并且将子节点提升到与自己平级, */

flatMenu?: true,

/** 跳转到一个路由 */

redirect?: string

/** 组件的包装组件 (https://umijs.org/docs/guides/routes#wrappers) */

wrappers?: string[]

/** 路由的标题 */

title?: string

//

/** 当此节点被选中的时候也会选中 parentKeys 的节点 */

parentKeys?: string[]

/** pro子菜单 */

// children?: IUmiRoute[]

/** umi子菜单 */

routes?: IUmiRoute[]

/** 自定义菜单的国际化 key */

locale?: string | false

/** 用于标定选中的值,默认是 path */

key?: string

/** 移除 layout (eg: 登录页 等等) */

layout?:false

// 更多

[key: string]: any

}

参考文章

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。