1、学习经历
用了两周的时间学习nodejs,nodejs是一个脚本语言,有过js基础,所以上手很简单。首先看nodejs开发文档,基本的语法自己也都实现了一遍。然后,第二周用websocket 和串口通信,实现了点击屏幕监控信号灯的功能。第三周开始看ant design pro ,好吧,开始确实无从下手,这里就简单分享下看懂ant-design-pro 并使用的过程。
2、从数据流开始,分析antd
最直接的办法就是看代码了,首先分析一下登录过程的数据流向,登录界面对应的js文件在 src/routes/User/Login.js,
自动忽略所有代码是啥意思,找到下面的代码:
handleSubmit = (err, values) => {
const { type } = this.state;
const { dispatch } = this.props;
if (!err) {
dispatch({
type: 'login/login',
payload: {
...values,
type,
},
});
}
};
嗯,重点看到 login/login , 这是react-router组件跳转的方式,payload是参数,这里的login/login跳转到哪里?前边的login代表着model,也就是src/models目录下的models。具体是怎么关联的呢?在src/common目录下的router.js文件中设置:
'/user/login': {
component: dynamicWrapper(app, ['login'], () => import('../routes/User/Login')),
嗯,['login'] , 就表示models 目录下对应的那个js文件(文件中的namespace='login')。然后就找到models文件夹下的对应login.js
找到:
*login({ payload }, { call, put }) {//fakeAccountLogin
const response = yield call(fakeAccountLogin, payload);
yield put({
type: 'changeLoginStatus',
payload: response,
});
// Login successfully
if (response.status === 'ok') {
reloadAuthorized();
yield put(routerRedux.push('/'));
}
},
这样的话,组件间数据的流向就跟清楚了,要想明白具体是怎么实现的请先学习 react,react-router ,redux
学完这些,上边的流程自然就能明白是啥意思了。
剩下的就是怎么获取后台数据了,
const response = yield call(fakeAccountLogin, payload); 使用call(function,param)和获取后台数据,fakeAccountLogin是方法,定义在service文件夹下
export async function fakeAccountLogin(params) {
return request('/api/login/account', {
method: 'POST',
body: params,
});
}
ant design pro 采用dva框架进行管理,所有你要到根目录找到.roadhogrc.mock.js 文件 ,看到
POST /api/login/account': (req, res) => {
//
}
在这里获取后台数据。以上就是完整的数据交互的流程 ,下面是学习三周后做的一个例子:
3、demo
主要的功能:用ant design 提供的组件完成对数据库的曾删改查的操作: