极客react之Ant Design Pro系列快速入门(一)--启动篇
2018-08-13 10:25
1001 查看
启动
-
启动文件: app/src/index.js
加载全局数据模型./models/global
加载全局路由./router
[code]import React from 'react'; import { routerRedux, Route, Switch } from 'dva/router'; import { LocaleProvider } from 'antd'; import zhCN from 'antd/lib/locale-provider/zh_CN'; import { getRouterData } from './common/router'; import Authorized from './utils/Authorized'; import { getQueryPath } from './utils/utils'; const { ConnectedRouter } = routerRedux; const { AuthorizedRoute } = Authorized; // 全局路由配置 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} /> <!-- 路由权限过滤,如果不是角色或admin或user则重定向/user/login路由 --> <AuthorizedRoute path="/" render={props => <BasicLayout {...props} />} authority={['admin', 'user']} redirectPath={getQueryPath('/user/login', { redirect: window.location.href, })} /> </Switch> </ConnectedRouter> </LocaleProvider> ); }
-
权限过滤
过滤权限文件:./utils/Authorized.js
[code] import RenderAuthorized from '../components/Authorized'; import { getAuthority } from './authority'; let Authorized = RenderAuthorized(getAuthority()); // eslint-disable-line // Reload the rights component const reloadAuthorized = () => { Authorized = RenderAuthorized(getAuthority()); }; export { reloadAuthorized }; export default Authorized;
获取权限文件:./utils/authority.js
[code] // use localStorage to store the authority info, which might be sent from server in actual project. // 重写该方法实现路由权限调整 export function getAuthority() { // return localStorage.getItem('antd-pro-authority') || ['admin', 'user']; // 如果没有权限登录默认guest权限进入登录界面 let authority = localStorage.getItem('antd-pro-authority') || 'guest'; return authority; } export function setAuthority(authority) { return localStorage.setItem('antd-pro-authority', authority); }
相关文章推荐
- 极客react之Ant Design Pro系列快速入门(七)-- 使用新的布局
- 极客react之Ant Design Pro系列快速入门(二)--登录与默认路径篇
- 极客react之Ant Design Pro系列快速入门(四)--界面新增
- 极客react之Ant Design Pro系列快速入门(三)--菜单与权限
- 极客react之Ant Design Pro系列快速入门(五)--更改控件的默认样式
- 极客react之Ant Design Pro系列快速入门(六)--绑定model
- 极客react之Ant Design Pro系列快速入门(九)-- 使用地图(高德地图)
- Ant Design Pro快速入门
- Ant-design 快速入门
- react(ant-design-pro)路由-router踩坑
- react入门篇 ant-design
- React + Ant Design 快速上手
- Mybatis系列之-MyBatis快速入门
- Netty 快速入门系列 - Chapter 6 自定义数据协议【第十五讲】自定义方法Serializer
- Netty 快速入门系列 - Chapter 7 数据包协议【第十九讲】解决方案-粘包分包原理
- C语言快速入门系列-详解
- 【快速入门ORM框架之Dapper】大牛勿进系列
- C++_系列自学课程_第_1_课_快速入门
- Deskpro .NET快速构建3维场景及扩展开发入门