umi 配置路由 独立路由文件

本文介绍了如何使用UMI框架配置项目路由,包括简单的路由配置方式和复杂路由的管理方法。通过示例展示了如何将路由定义从配置文件中分离出来,以便于维护。

umi 配置路由

根据 umi ,官方文档的介绍,项目的路由写在 .umirc.ts 文件里的 routes 数组中

import { defineConfig } from 'umi';

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

如果路由较少可以集成在 .umirc.ts 文件中

遇到路由较多的情况,可以将路由文件单独提出来,

例如可以讲路由文件提出来放在 src/pages 文件下,

创建一个 routers 文件夹(文件夹名随意)下的 index.tsx 文件(.js/.ts/.tsx

在这里插入图片描述
routers/index.tsx 文件中专门放置路由

import {IRoute} from 'umi' // 引入的 umi 里的路由接口定义规则

const routers: IRoute[] = [
    { path: '/', component: '@/pages/index', name:'首页'},
]

export default routers

这里引入的 IRouteumi 里的路由接口定义规则

export interface IRoute {
  component?: string;
  exact?: boolean;
  path?: string;
  routes?: IRoute[];
  wrappers?: string[];
  title?: string;
  __toMerge?: boolean;
  __isDynamic?: boolean;
  [key: string]: any;
}

此时在 .umirc.ts 文件里引入刚编写的路由文件
则修改成

import { defineConfig } from 'umi';
import routers from './src/routers'  // 只能使用 ./ 形式引入模块,@ 无法识别找到文件
// const route = require('./src/routers')  // 使用require引入routers文件

export default defineConfig({
  nodeModulesTransform: {
    type: 'none',
  },
  routes: routers,
  fastRefresh: {},
});

注意 : 只能使用 ./ 形式引入模块,@/ 无法识别找到文件

参考文献:

UmiJS 官方文档
umi怎么去添加配置式路由
关于umi 的配置式路由
umi项目路由搭建以及数据请求模式搭建
UmiJS之路由
umi 路由

Umi配置路由权限需要以下步骤: 1. 安装依赖 首先需要安装 `@umijs/plugin-access` 插件,该插件提供了路由权限控制的功能。 ```bash npm install @umijs/plugin-access --save-dev ``` 2. 配置插件 在 `.umirc.js` 或 `config/config.js` 文件中添加插件配置: ```js export default { plugins: [ ['@umijs/plugin-access', { access: 'src/access.js', }], ], }; ``` 3. 编写权限控制文件 在 `src` 目录下创建 `access.js` 文件,该文件用于定义路由权限控制规则。 ```js export default function access(initialState) { const { currentUser } = initialState || {}; return { canReadPage1: currentUser && currentUser.role === 'admin', canReadPage2: currentUser && currentUser.role === 'user', }; } ``` `access.js` 文件需要导出一个函数,并接受一个参数 `initialState`,该参数包含了当前用户的信息等状态。函数需要返回一个对象,对象中定义了每个路由的访问权限。 在上面的例子中,我们定义了两个权限:`canReadPage1` 和 `canReadPage2`,分别表示访问页面1和页面2的权限。如果用户拥有相应的权限,即 `currentUser.role` 等于 `admin` 或 `user`,则返回 `true`,否则返回 `false`。 4. 配置路由路由配置中使用 `access` 属性指定路由访问权限: ```js export default [ { path: '/page1', component: '@/pages/Page1', access: 'canReadPage1', }, { path: '/page2', component: '@/pages/Page2', access: 'canReadPage2', }, ]; ``` 在上面的例子中,我们将 `access` 属性分别指定为 `canReadPage1` 和 `canReadPage2`,表示只有当用户拥有对应的权限时才能访问对应的路由。 以上就是在 Umi配置路由权限的步骤。通过上述配置,我们可以实现简单的路由权限控制。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值