博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
React框架Umi实战(3)路由进阶
阅读量:5785 次
发布时间:2019-06-18

本文共 2532 字,大约阅读时间需要 8 分钟。

前面的课程都是使用的约定路由,就是自动生成的,但是我们做项目大部分都是涉及权限控制的,这时就还是得用控制路由,仅今天就来改进一下

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 (            
{ return isLogged ?
:
}} /> ) }}function mapStateToProps(state) { return { state }}// export default ListData;export default connect(mapStateToProps)(withRouter(AuthRouter));

里面的判断可以根具你自己的业务来写,我这边是跳转到登陆页面。

3 登陆页面

import { connect } from 'dva';function Login(){  return (    

this is login page

)}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,该有的都已经帮你搭好了,如果你也想开发后台管理的系统。

别忘了关注我 mike啥都想搞

mike啥都想搞

还有其他后端技术分享在我的公众号。

转载地址:http://wftyx.baihongyu.com/

你可能感兴趣的文章
JS中比较数字大小
查看>>
jQuery插件的开发
查看>>
基础,基础,还是基础之JAVA基础
查看>>
JS prototype 属性
查看>>
HTTP库Axios
查看>>
gen already exists but is not a source folder. Convert to a source folder or rename it 的解决办法...
查看>>
20个Linux服务器性能调优技巧
查看>>
填坑记:Uncaught RangeError: Maximum call stack size exceeded
查看>>
SpringCloud之消息总线(Spring Cloud Bus)(八)
查看>>
实时编辑
查看>>
KVO原理分析及使用进阶
查看>>
【348天】每日项目总结系列086(2018.01.19)
查看>>
【294天】我爱刷题系列053(2017.11.26)
查看>>
可替换元素和非可替换元素
查看>>
2016/08/25 The Secret Assumption of Agile
查看>>
(Portal 开发读书笔记)Portlet间交互-PortletSession
查看>>
搭建vsftpd服务器,使用匿名账户登入
查看>>
JAVA中循环删除list中元素的方法总结
查看>>
Java虚拟机管理的内存运行时数据区域解释
查看>>
人人都会深度学习之Tensorflow基础快速入门
查看>>