umi pro-layout : 某个页面 禁用/移除 pro-layout ( 比如: 登录页不需要 layout )

本文介绍了如何在umi框架中针对特定页面关闭默认的ProLayout,通过设置`layout:false`来实现登录页等不需要布局的页面的个性化配置。同时提供了详细的路由配置示例,包括IUmiRoute接口的定义,以及相关配置如antd和ProLayout的集成。
摘要由CSDN通过智能技术生成

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
}



  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 根据提供的引用内容,我在和中找到了与你提供的问题相关的信息。根据第一个引用,这个目录是用于自动生成路由的,其中包含了路径、组件和子路由等信息。而在第二个引用中,也提供了类似的路由配置信息,包括路径、组件和自定义属性等。根据第三个引用中的错误提示,可能是由于路径大小写不匹配导致的模块找不到的错误。根据你提供的问题,"./src/.umi/core/route.tsx:35:23-138"可能指的是出错的位置范围。但是由于没有提供具体的错误信息,无法判断具体的错误原因和解决方法。如果你能提供更多的错误信息,我将尽力帮助你解决问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [umi学习:路由](https://blog.csdn.net/weixin_44828005/article/details/117092533)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [ERROR in ./src/.umi/core/routes.ts 402:19-404:109Module not found: Error: [CaseSensitivePathsPlugin](https://blog.csdn.net/u010234868/article/details/126530428)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值