内容简介:前面的课程都是使用的约定路由,就是自动生成的,但是我们做项目大部分都是涉及权限控制的,这时就还是得用控制路由,仅今天就来改进一下一旦使用了配置路由,那么pages下的文件将不再生成路由。里面的判断可以根具你自己的业务来写,我这边是跳转到登陆页面。
前面的课程都是使用的约定路由,就是自动生成的,但是我们做项目大部分都是涉及权限控制的,这时就还是得用控制路由,仅今天就来改进一下
1 修改配置 .umirc.js
// ref: https://umijs.org/config/
export default {
plugins: [
// ref: https://umijs.org/plugin/umi-plugin-react.html
['umi-plugin-react', {
antd: true,
dva: true,
dva: {
immer: true
},
dynamicImport: false,
title: 'umis',
dll: false,
hardSource: false,
routes: {
exclude: [
/model\.(j|t)sx?$/,
/service\.(j|t)sx?$/,
/models\//,
/components\//,
/services\//,
],
},
}],
],
routes: [
{
path: '/',
component: '../layouts',
},
{
path: '/users',
component: '../layouts',
Routes: ['src/components/Authorized'],
routes: [
{ path: '/users', component: './users' },
],
},
{
path: '/login',
component: '../layouts',
routes: [
{ path: '/login', component: './login' },
],
},
{
path: '/test',
component: '../layouts',
routes: [
{ path: '/test', component: './test' },
],
},
]
}
一旦使用了配置路由,那么pages下的文件将不再生成路由。 component 的路径是相对于 src\pages 的。在需要权限控制的的路由下使用 Routes 属性配置。
2 鉴权路由组件 components\Authorized
import React, { Component } from 'react'
import { connect } from 'dva';
import { Router, Route, Redirect, withRouter } from 'dva/router';
import { message } from 'antd';
class AuthRouter extends Component {
render() {
const { component: Component, ...rest } = this.props
const isLogged = false
if (!isLogged) {
message.warning('您需要先登陆');
}
return (
<Route {...rest} render={props => {
return isLogged
? <Component {...props} />
: <Redirect to="/login" />
}} />
)
}
}
function mapStateToProps(state) {
return {
state
}
}
// export default ListData;
export default connect(mapStateToProps)(withRouter(AuthRouter));
里面的判断可以根具你自己的业务来写,我这边是跳转到登陆页面。
3 登陆页面
import { connect } from 'dva';
function Login(){
return (
<div>
<h1>this is login page</h1>
</div>
)
}
function mapStateToProps(state) {
console.log(state.login);
return {
test:'fhf'
};
}
export default connect(mapStateToProps)(Login);
这样你访问/users 就会重定向到登陆页面:
4 总结
这样简单的umi使用就结束了,在我看来重点就这么多,大部分还是dva的使用,参考我之前的dva系列学一下就好了。这些框架其实都是比较好上手,关键还是React的基础要掌握好,还有es6的语法。如果你想要直接进入开发,建议不要自己再花时间搭建框架。即使你使用了umi自己按我所写的搭建出来,也没有直接用现成的快。
而且重复造轮子,并没有什么意义。建议直接使用 ant-design-pro https://github.com/ant-design... ,该有的都已经帮你搭好了,如果你也想开发后台管理的系统。
别忘了关注我 mike啥都想搞
还有其他后端技术分享在我的公众号。
以上所述就是小编给大家介绍的《React框架Umi实战(3)路由进阶》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 【译】RabbitMQ 实战教程(四) 路由
- Golang Gin 实战(三):路由参数
- 路由器0day漏洞挖掘实战
- Vue实战—路由轻松设置vue-router(3)
- Knative 实战:如何在 Knative 中配置自定义域名及路由规则?
- vue路由篇(动态路由、路由嵌套)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
深入理解计算机系统(英文版·第2版)
[美] Randal E. Bryant、[美] David R. O'Hallaron / 机械工业出版社 / 2011-1 / 128.00元
本书是一本将计算机软件和硬件理论结合讲述的经典教程,内容覆盖计算机导论、体系结构和处理器设计等多门课程。本书的最大优点是为程序员描述计算机系统的实现细节,通过描述程序是如何映射到系统上,以及程序是如何执行的,使读者更好地理解程序的行为为什么是这样的,以及造成效率低下的原因。 相对于第1版,本版主要是反映了过去十年间硬件技术和编译器的变化,具体更新如下: 1. 对系统的介绍(特别是实际使......一起来看看 《深入理解计算机系统(英文版·第2版)》 这本书的介绍吧!
JS 压缩/解压工具
在线压缩/解压 JS 代码
Base64 编码/解码
Base64 编码/解码