Ant Design Pro入门

1)Ant Design Pro

Ant Design Pro 是基于Ant Design的一个开箱即用的,企业级中后台前端/设计解决方案。

Ant Design Pro Type ProFormSelect性属_前端


源码地址:https://github.com/ant-design/ant-design-pro

Ant Design Pro Type ProFormSelect性属_数据_02

2)部署安装

下载地址:https://github.com/ant-design/ant-design-pro
我们使用资料中提供的,已经下载好的文件:ant-design-pro-master.zip

第一步:将ant-design-pro-master.zip解压到任意目录,我的目录是F:\code

Ant Design Pro Type ProFormSelect性属_前端框架_03


Ant Design Pro提供的目录如下:


├── config # umi 配置,包含路由,构建等配置


├── mock # 本地模拟数据


├── public


│ └── favicon.png # Favicon


├── src


│ ├── assets # 本地静态资源


│ ├── components # 业务通用组件


│ ├── e2e # 集成测试用例


│ ├── layouts # 通用布局


│ ├── models # 全局 dva model


│ ├── pages # 业务页面入口和常用模板


│ ├── services # 后台接口服务


│ ├── utils # 工具库


│ ├── locales # 国际化资源


│ ├── global.less # 全局样式


│ └── global.js # 全局 JS


├── tests # 测试工具


├── README.md


└── package.json


第二步,导入项目到Idea中


Ant Design Pro Type ProFormSelect性属_github_04


Ant Design Pro Type ProFormSelect性属_前端框架_05


Ant Design Pro Type ProFormSelect性属_github_06

第三步:进行初始化以及启动

tyarn install #安装相关依赖
tyarn start #启动服务

Ant Design Pro Type ProFormSelect性属_前端框架_07

3)菜单和路由

默认的菜单是不能直接投入到项目开发的,所以,我们需要搞清楚如何自定义菜单和路由。

在pro中,菜单和路由,在router.config.js配置文件中进行管理:

Ant Design Pro Type ProFormSelect性属_react.js_08


打开router.config.js后,可以看出,pro提供了有2套路由(布局),分别是/user和/

Ant Design Pro Type ProFormSelect性属_react.js_09


/user的布局:

Ant Design Pro Type ProFormSelect性属_前端_10


接下来,我们先重点关注,/路由:

routes: [
// dashboard
{ path: '/', redirect: '/dashboard/analysis' },
{
path: '/dashboard',
name: 'dashboard',
icon: 'dashboard',
routes: [
{
path: '/dashboard/analysis', //请求路径
name: 'analysis',
component: './Dashboard/Analysis', //组件位置
},
{
path: '/dashboard/monitor',
name: 'monitor',
component: './Dashboard/Monitor',
},
{
path: '/dashboard/workplace',
name: 'workplace',
component: './Dashboard/Workplace',
},
],
},

所以,可以得出结论,菜单是有路由的配置生成的。
接下来进行实验,新增一个路由:

// new
{
path: '/new',
name: 'new',
icon: 'user',
routes: [
{
path: '/new/analysis',
name: 'analysis',
component: './Dashboard/Analysis',
},
{
path: '/new/monitor',
name: 'monitor',
component: './Dashboard/Monitor',
},
{
path: '/new/workplace',
name: 'workplace',
component: './Dashboard/Workplace',
},
],
},

测试:

Ant Design Pro Type ProFormSelect性属_前端框架_11


可以看出,新的菜单以及添加到页面中,只是显示的文字不对。那么文字在哪里配置呢?

其实,文字是在国际化文件中进行配置的:

Ant Design Pro Type ProFormSelect性属_前端_12


Ant Design Pro Type ProFormSelect性属_前端框架_13


新增配置如下:

'menu.new': 'New Dashboard',
'menu.new.analysis': 'New 分析页',
'menu.new.monitor': 'New 监控页',
'menu.new.workplace': 'New 工作台',

进行测试:

Ant Design Pro Type ProFormSelect性属_github_14

4)新增页面

上面我们添加了新的菜单,但是页面依然使用的是模板中的页面,那么如何新增页面呢?

所有的页面依然是保存的src/pages中,在pages目录下,以功能为单元创建目录,如:

Ant Design Pro Type ProFormSelect性属_前端_15


创建文件 NewAnalysis.js:

import React from 'react';
class NewAnalysis extends React.Component {
	render() {
		return (
			<div>NewAnalysis</div>
		);
	}
	}
export default NewAnalysis;

修改路由中的路径:

Ant Design Pro Type ProFormSelect性属_github_16


测试:

Ant Design Pro Type ProFormSelect性属_前端_17


可以看到,一个新的页面就创建好了,并且已经加入到菜单中。

5)pro中的model执行流程

在pro系统中,model是如何执行的,下面我们以表格为例,探究下在Pro中的执行流程。

Ant Design Pro Type ProFormSelect性属_react.js_18


进入TableList.js代码进行查看:

生成表格的主要逻辑在这里:

Ant Design Pro Type ProFormSelect性属_github_19


在StandardTable中,使用Table组件生成表格,其中数据源是data:

Ant Design Pro Type ProFormSelect性属_前端框架_20


TableList.js中,data数据从构造方法中获取到:

Ant Design Pro Type ProFormSelect性属_数据_21


this.props中的rule数据,是通过@connect()修饰器获取: 需要注意的是:{ rule, loading }是解构表达式,从

props中获取数据

Ant Design Pro Type ProFormSelect性属_前端框架_22


数据从model中获取,在models下的rule.js中:

Ant Design Pro Type ProFormSelect性属_前端框架_23


在TableList.js中,组件加载完成后进行加载数据:

Ant Design Pro Type ProFormSelect性属_数据_24


在rule.js中,进行加载数据:

Ant Design Pro Type ProFormSelect性属_数据_25


queryRule是在/services/api中进行了定义:

Ant Design Pro Type ProFormSelect性属_react.js_26


数据的mock是在mock/rule.js中完成

Ant Design Pro Type ProFormSelect性属_react.js_27


这就是整个数据的加载、更新流程。