umi 配置式路由(基于React)

本文详细介绍了umi框架中的路由配置,包括配置式路由和约定式路由的使用。对于简单路由结构,推荐使用约定式路由,而复杂项目则适合配置式路由。在umi中,路由默认采用history模式,可通过history属性切换到hash模式。同时,展示了如何配置一级和二级路由,以及在.umirc.ts文件中进行路由设置的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

umi 中的路由分类两种:

配置式路由:开发者需要单独创建一个配置文件,通过各种属性或方法来实现对路由规则的配置;

约定式路由:开发者不需要手动配置,只需要按照 umi 的规则来创建路由目录和文件,umi 会自动根据文件目录将路由配置解析出来;

当项目中的路由结构比较简单,就可以使用约定式路由。如果是比较复杂的项目,都建议使用配置式路由。

一、路由模式

umi 项目中的路由模式默认是 history 模式,可以通过 history 属性来切换路由模式:

import { defineConfig } from 'umi';

export default defineConfig({
    nodeModulesTransform: {
        type: 'none',
    },
    routes: [
        { path: '/', component: '@/pages/index' },
    ],
    // 路由模式
    history: {
        type: 'hash'
    },
    fastRefresh: {},
});

二、配置一级路由

路由的配置,在项目根目录中的 .umirc.ts 文件中进行:

import { defineConfig } from 'umi';

export default defineConfig({
    nodeModulesTransform: {
        type: 'none',
    },
    routes: [
        { path: '/', component: '@/pages/index' },
        { path: '/my', component: '@/pages/my' },
        { path: '/friend', component: '@/pages/friend' },
    ],
    fastRefresh: {},
});

三、配置二级路由

import { defineConfig } from 'umi';

export default defineConfig({
    nodeModulesTransform: {
        type: 'none',
    },
    routes: [
        { 
            path: '/', component: '@/pages/index',
            // 配置子路由
            routes: [
                { path: '/discover', component: '@/pages/discover' },
                { path: '/discover/topList', component: '@/pages/topList' },
            ]
        },
        { path: '/my', component: '@/pages/my' },
        { path: '/friend', component: '@/pages/friend' },
    ],
    history: {
        type: 'hash'
    },
    fastRefresh: {},
});
umi 是一个可插拔的企业级 react 应用框架,它基于 react-router 和 antd,支持约定路由,简化了配置,易于使用。要简单配置动态路由,你可以按照以下步骤操作: 1. **约定路由**: 在 `src` 目录下创建页面文件,umi 会自动识别这些文件,并将文件路径转化为路由。例如,创建一个 `src/pages/user.js` 文件,对应的路由就是 `/user`。 2. **动态路由**: 如果需要配置动态路由,你可以创建以 `[]` 包围的文件夹或文件。例如,创建一个 `src/pages/users/[id].js` 文件,这将匹配如 `/users/1`、`/users/2` 等的路由,其中 `id` 是动态参数。 3. **配置文件**: 在项目的根目录下有一个配置文件 `.umirc.js` 或 `config/config.js`,你可以在这里配置路由相关的内容,比如添加路由前缀等。 4. **路由配置**: 如果你需要更多的路由配置,比如重定向、路由守卫等,可以在 `.umirc.js` 或 `config/config.js` 文件中使用 `routes` 配置项手动定义路由。例如: ```javascript export default { routes: [ { path: '/user', component: './User', routes: [ { path: '/user/:id', component: './User/Detail', }, ], }, ], }; ``` 这样的配置可以更细致地控制你的路由规则,包括路由的嵌套、参数匹配等。 5. **动态参数获取**: 在对应的页面组件中,你可以通过 `props` 来获取动态参数。例如,在 `src/pages/users/[id].js` 中,你可以通过 `props.match.params.id` 来获取传递进来的 `id` 参数。 通过上述步骤,你可以简单地配置动态路由,并在 umi 项目中使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值