umi 项目配置

一、运行配置

约定src/app.tsx为运行配置

配置项目

1.patchRoutes 修改路由,可获得整个路由系统

export function patchRoutes({ routes }) {

routes.unshift({

path: '/foo',

exact: true,

component: require('@/extraRoutes/foo').default,

});

}

复制代码

2.render 复写render,可做权限效验等需要在渲染前完成的操作

import { history } from 'umi';

export function render(oldRender) {

fetch('/api/auth').then(auth => {

if (auth.isLogin) { oldRender() }

else { history.redirectTo('/login'); }

});

}

复制代码

3.onRouteChange({routes,matchedEoutes,location,action})

路由初始加载和路由改变时触发

bacon(location.pathname);

}

复制代码

二、插件配置

1.@umijs/plugin-initial-state

1.1启动方式

​ 有src/app.tsx 并且到处getInitialState方法时启用

1.2运行配置

getInitialState

// src/app.ts

export async function getInitialState() {

const data = await fetchXXX();

return data;

}

如果要做权限拦截,此函数会最开始执行,获取权限数据之后,layout、access插件可以获取这个数据

参考链接:

https://github.com/umijs/plugin-access

复制代码

2.@umijs/plugin-access

2.1启用方式

有src/access.ts时启用

2.2运行配置 ,导出一个权限对象

// src/access.ts

export default function(initialState) {

const { userId, role } = initialState;

return {

canReadFoo: true,

canUpdateFoo: role === 'admin',

canDeleteFoo: foo => {

return foo.ownerId === userId;

},

};

}

initialState 是通过@umijs/plugin-initial-state返回的数据,可以用此数据进行权限判断

复制代码2.3 扩展路由权限拦截配置

export const routes = [

{

path: '/pageA',

component: 'PageA',

access: 'canReadFoo', // 权限定义返回

umi权限路由_umi 入门之项目配置相关推荐

  1. umi权限路由_Umi 小白纪实(三)—— 震惊!路由竟然如此强大!

    在<Umi 小白纪实(一)>中有提到过简单的路由配置和使用,但这只是冰山一角 借用一句广告词,Umi 路由的能量,超乎你的想象 一.基本用法 Umi 的路由根结点是全局 layout  s ...

  2. uni-app 5小时快速入门 6 项目配置

    uni-app 5小时快速入门 文章目录 uni-app 5小时快速入门 6 项目配置 6.1 manifest.json 6.1.1 基础配置 6.1.2 App图标配置 6.1.3 App启动界面 ...

  3. vue3 路由 vite方式新建项目 配置路由【适合新手】

    一 配环境.并初始化项目 安装nodejs https://blog.csdn.net/lh155136/article/details/128444850 参考官网https://cn.vuejs. ...

  4. vue vuex vue-router后台项目——权限路由(超详细简单版)

    项目地址:vue-simple-template 共三个角色:adan barbara carrie 密码全是:123456 adan 拥有 最高权限A 他可以看到 red , yellow 和 bl ...

  5. 【音视频安卓开发 (一)】AndroidStudio项目配置权限、jni库路径、ABI、Cmake

    cmake项目配置 # For more information about using CMake with Android Studio, read the # documentation: ht ...

  6. 【音视频安卓开发 (四)】AndroidStudio项目配置权限、jni库路径、ABI

    读写权限 权限(版本) 添加jni用到库所在的路径 设置cmake和NDK参数 cmake项目配置

  7. 【Umi+Dva入门实战】简述Dva、Umi和路由的理解

    Umi 3+Dva入门实践–简述Dva.Umi和路由的理解 dva/umi/react 之间的关系 dva简介 umi简介 umi插件体系 路由简介 观看下面视频学习 https://www.bili ...

  8. Ant Design Pro of Vue方案一权限路由配置(一步步完成,包括所有后端数据库代码,萌新向)

    Ant Design Pro of Vue方案一权限路由配置(一步步完成,包括所有后端数据库代码,萌新向) 参考了许多csdn的文章,感谢大家为社区做的贡献,我也来汇总一波,谢谢

  9. LINUX新手入门及安装配置FAQ(http://bbs.blueidea.com/viewthread.php?tid=635906amp;page=)

    LINUX新手入门及安装配置FAQ 剑气凌人 [楼主] 尖脐 荣誉管理团队 帖子 6386  体力 10046   威望 168   当前 北京 海淀区 发短消息 个人网站 1# 大 中 小 发表于 ...

最新文章

  1. lambda表达式_在Java 7或更早版本中使用Java 8 Lambda表达式
  2. The server time zone value ‘XXXXXX’ is unrecognized or represents more than one time zone
  3. 在Data Lake Analytics中使用视图
  4. JavaScript中的String substring()方法和示例
  5. 【转】SPSite、SPWeb对象模型(转winos.cn)
  6. MySQL buffer pool里的三种链表和三种page
  7. 路由器故障排除的思路与理论
  8. 分页选择器v-selectpage的介绍
  9. 一封来自华尔街 Quant 的信
  10. matlab 质心,Matlab中三点确定质心
  11. 淡入淡出文字垂直滚动
  12. SpringBoot整合极光推送
  13. Linux命令 常见命令 详细分类
  14. 全自动 TSPITR--基于RMAN-LOGSEQ
  15. 一位95后程序员的分享:如何拿下年薪45万的offer?
  16. Python与Arduino绘制超声波雷达扫描
  17. 北京最大耐克体验店开业;HH中国首家旗舰店在上海开业 | 美通社头条
  18. 转:管理者既要疏通水管,又要写诗歌
  19. 怎样解决 crx扩展无法离线安装,本地插件crx不能安装 的问题?
  20. 游戏建模师好找工作吗?学多久可以出师?

热门文章

  1. 西门子plc300以太网组态
  2. oracle数据表造成死锁,解决方法
  3. Android 网络性能优化(2)DNS优化
  4. cancelBubble 的用法
  5. 私有IP,A类IP地址,B类IP地址,C类IP地址
  6. NUnit Assert简介
  7. “喜新厌旧”的喜茶,该如何撑起600亿的估值?
  8. [SEEDLabs] Format String Attack Lab
  9. EXCEL-MAX和MIN函数(最大值和最小值函数)
  10. 2008 桌面 计算机名,Win7如何改计算机名 Win7更改计算机方法