极客react之Ant Design Pro系列快速入门(一)--启动篇

启动

  1. 启动文件: app/src/index.js

    加载全局数据模型./models/global

    加载全局路由./router

    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>
         );
     }
    
  2. 权限过滤

    过滤权限文件:./utils/Authorized.js

     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

     // 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);
     }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值