2019独角兽企业重金招聘Python工程师标准>>>

#首页 src/index.js

import '@babel/polyfill';
import 'url-polyfill';
import dva from 'dva';//import createHistory from 'history/createHashHistory';
// user BrowserHistory
import createHistory from 'history/createBrowserHistory';
import createLoading from 'dva-loading';
import 'moment/locale/zh-cn';
import './rollbar';import './index.less';// 1. Initialize  dva初始化
const app = dva({history: createHistory(),
});// 2. Plugins   加载插件
app.use(createLoading());// 3. Register global model   注册全集model
app.model(require('./models/global').default);// 4. Router  加载路由
app.router(require('./router').default);// 5. Start
app.start('#root');export default app._store; // eslint-disable-line

就是以上5步成就了首页 引用createHistory 可以实现类似java restfull 风格api 一样的路径访问

引用路由 src/router.js

import React from 'react';
import { routerRedux, Route, Switch } from 'dva/router';
import { LocaleProvider, Spin } from 'antd';
import zhCN from 'antd/lib/locale-provider/zh_CN';
import dynamic from 'dva/dynamic';
import { getRouterData } from './common/router';
import Authorized from './utils/Authorized';
import styles from './index.less';//const antIcon = <Icon type="loading" style={{ fontSize: 24 }} spin />;const { ConnectedRouter } = routerRedux;
const { AuthorizedRoute } = Authorized;
dynamic.setDefaultLoadingComponent(() => {return <Spin size="large" className={styles.globalSpin} />;
});function RouterConfig({ history, app }) {const routerData = getRouterData(app);const UserLayout = routerData['/user'].component;const BasicLayout = routerData['/'].component;return (<LocaleProvider locale={zhCN}><ConnectedRouter history={history}><Switch><Route path="/user" component={UserLayout} /><AuthorizedRouteapath="/"authority={['admin', 'user']}render={props => <BasicLayout {...props} />}redirectPath="/user/login"/></Switch></ConnectedRouter></LocaleProvider>);
}export default RouterConfig;

里面用到了AuthorizedRoutea 和 authority,目前笔者比较笨,还没研究透,大意是权限控制,感觉和spring 的secrity 差不多,在这个项目当中主要用了

这里还用到了 加载动画,但是也没找到怎么替换,后续补充更新

// use localStorage to store the authority info, which might be sent from server in actual project.
export function getAuthority() {const exp =30000;/* const curTime = new Date().getTime();const key = localStorage.getItem('antd-pro-authority');if(key){if(isJSON(key)){const dataObj = JSON.parse(key);if (curTime - dataObj.time > exp){return "guest"}return dataObj.data;}else{return "18888888888";}}*/// return localStorage.getItem('antd-pro-authority') || ['admin', 'user'];return localStorage.getItem('antd-pro-authority') || 'guest';  //修改这里为guest.
}function isJSON(str) {try {if (typeof JSON.parse(str) == "object") {return true;}} catch(e) {}return false;
}export function setAuthority(authority) {/*let curTime = new Date().getTime();let authorityvalue = JSON.stringify({data:authority,time:curTime});return localStorage.setItem('antd-pro-authority', authorityvalue);*/return localStorage.setItem('antd-pro-authority', authority);}export function setuser(user) {if(user){return  localStorage.setItem('user', JSON.stringify(user));}else {return localStorage.setItem('user', "");}}

貌似是说 如果权限是guest 那么就进入到登陆页面,如果是admin 或者user 权限 就进入到相应的路由页面 后续研究好了再来补充

##使用日常记录

  src/components/SiderMenu/SiderMenu.js    第212代码。width改右边导航栏长度导航栏的内容在 src/common/menu.js 中全局的路由关系是这样一个走向:src/index.js 中通过 app.router(require('./router').default);,将 src/router.js 绑定到 dva 实例的 router 方法上。而在 src/router.js 中又引入了 src/common/router.js 中的 getRouterData 作为数据源。如果有点绕,不太能一下子看明白,那就直接记下面的结论:因而,src/common/menu.js 中 path 所指向的路径对应于 src/common/router.js 中的路由记录。getRouterData 同src目录下,.webpackrc.js里面配置了,关联了页面入口设置。routes:每个路由对应的页面组件文件。主要定义具体页面的基本结构和内容。services:用于与后台交互、发送请求等。models:用于组件的数据存储,接收请求返回的数据等。components:组件文件夹。每个页面可能是由一些组件组成的,对于一些相对通用的组件,建议将该组件写入components文件夹中,并在routes文件夹中的文件引入来使用。.roadhogrc.mock.js   拦截api接口地址utils/authority.js   控制 权限 登录用户名redux  和 dva import createHistory from 'history/createHashHistory';  引入后  可以让url中多出#  比如:http://localhost:8000/#/?_k=gebc0mimport createHistory from 'history/createBrowserHistory';  引入后  可以让url 中去掉#,形如restfulurl 方式的 url 在页面index.js 中  初始化dva  cesjosfhoslhfshgdl hgdl 1、下载或克隆项目源码2.npm安装相关包文件npm i3.启动项目 npm start 4.打包项目npm run build  

转载于:https://my.oschina.net/u/3277181/blog/2962001

#react 之ant design Pro 学习研究#----启动项目相关推荐

  1. React 基于ant design Pro 4 实现的一个分页, 自定义页码颜色

    标题目录 代码 样式 前言 这是在 Ant Design Pro 4 中基于 ant design 的 Pagination 分页组件的基础上开发的. 有这么一个需求, 页码的颜色基于该页是否有差异, ...

  2. Ant Design Pro 改变默认启动端口号

    找到package.json文件,找到图位置加--port即可.

  3. React的Ant Design Pro目录结构

  4. ant design pro 加载慢_ant design pro项目打包后页面加载缓慢

    用ant design pro框架做的项目,打包之后每一个页面加载的速度都特别慢,在.webpackrc里面配置了ignoreMomentLocale: true, disableDynamicImp ...

  5. 使用ant design Pro开发项目的小结

    一.关于上手. 1. 关于ant design Pro的介绍,自己看官网,大致上可以理解为ant design(组件库) ant design Pro (完整的项目) dva(路由 数据流管理)的组合 ...

  6. ant design pro模板_Ant Design Pro 学习笔记

    学习笔记 摘要介绍 Ant Design Pro 是一个基于Ant Design搭建起来的模板项目.它提供了两个主要布局:BasicLayout.UserLayout,在布局基础上制作了20多个基础页 ...

  7. ant design pro(一)安装、目录结构、项目加载启动【原始、以及idea开发】

    一.概述 1.1.脚手架概念 编程领域中的"脚手架(Scaffolding)"指的是能够快速搭建项目"骨架"的一类工具.例如大多数的React项目都有src,p ...

  8. ant design pro V2 学习笔记

    该笔记分为两部分,前面部分为官方文档介绍,后面为实际项目改造的历程 本文档不定时更新,你想要的在实战部分 如果你对react.dva等一些概念不是很清晰,建议先看以下概念: react:https:/ ...

  9. React Ant design pro 访问服务器接口,获取数据显示

    React Ant design pro 访问服务器接口 一.前两天更新了Ant design pro环境搭建,需要了解的小伙伴可以看一下之前的内容,还有react基础教程噢. 二.框架搭建完后,一般 ...

最新文章

  1. python考级证书-python考级有几个级别
  2. 使用gpu(gtx1080) cudnn 5.1下编译faster rcnn
  3. 获取笔记本的SHA1的值。
  4. 怎么样得到平台相关的换行符?
  5. windows 播放MP3音乐
  6. vue @click 如何绑定多个方法
  7. python内置类型和类_python – 内置类型和用户定义之间的不一致
  8. cf D. Dima and Hares
  9. 没业绩怎么写好年终总结?这样写总结年终奖翻倍!
  10. 固定定位小技巧(HTML、CSS)
  11. 【MySQL性能优化的21个最佳实践】
  12. windows系统常用运行命令大全
  13. vi: 未找到命令_vi技巧和窍门:十个很棒的命令一定会给您的朋友留下深刻的印象...
  14. PHP 链接手机短信接口
  15. 创建mysql对象_mysql创建statement对象
  16. sizeof 32位和64位操作系统的区别
  17. 原生JS购物车---cookie应用
  18. SAP 的成本中心与利润中心的关系
  19. 实战型较强的交易经典著作:
  20. 研究生期间自学模拟ic能在校招找到工作吗?

热门文章

  1. Asp深度揭密(下)
  2. JS 前端排序 数组指定项移动到最后
  3. ES6学习笔记(一):轻松搞懂面向对象编程、类和对象
  4. CNN图像分割简史:从R-CNN到Mask R-CNN(译)
  5. wchar_t与char转换(转载)
  6. OpenCV3学习(6.1)——边缘检测---Canny,Sobel,Prewitt,Robert,Laplace,LOG,DOG算子
  7. 7-84 点赞狂魔 (25 分)
  8. 7-5 图形继承与多态 (50 分)
  9. VS2010与OpenCV2410简单配置
  10. css3动画 --- Transition