Ant Design Pro 中的服务端交互
2019-03-30 00:31
190 查看
前端请求流程
在 Ant Design Pro 中,一个完整的前端 UI 交互到服务端处理流程是这样的:
-
UI 组件交互操作;
-
调用 model 的 effect;
-
调用统一管理的 service 请求函数;
-
使用封装的 request.js 发送请求;
-
获取服务端返回;
-
然后调用 reducer 改变 state;
-
更新 model
统一的请求处理都放在
services文件夹中,并且一般按照 model 维度进行拆分文件
services/ user.js api.js ...
其中,
utils/request.js是基于 fetch 的封装,便于统一处理 POST,GET 等请求参数,请求头,以及错误提示信息等。具体可以参看 request.js。
例如在 services 中的一个请求用户信息的例子:
// services/user.js import request from '../utils/request'; export async function query() { return request('/api/users'); } export async function queryCurrent() { return request('/api/currentUser'); } // models/user.js import { queryCurrent } from '../services/user'; ... effects: { *fetch({ payload }, { call, put }) { ... const response = yield call(queryCurrent); ... }, }
处理异步请求
在处理复杂的异步请求的时候,很容易让逻辑混乱,陷入嵌套陷阱,所以 Ant Design Pro 的底层基础框架 dva 使用
effect的方式来管理同步化异步请求:
effects: { *fetch({ payload }, { call, put }) { yield put({ type: 'changeLoading', payload: true, }); // 异步请求 1 const response = yield call(queryFakeList, payload); yield put({ type: 'save', payload: response, }); // 异步请求 2 const response2 = yield call(queryFakeList2, payload); yield put({ type: 'save2', payload: response2, }); yield put({ type: 'changeLoading', payload: false, }); }, },
转载于:https://www.cnblogs.com/nhz-M/p/10624984.html
相关文章推荐
- Ant Design Pro 中的服务端交互
- 后端spring boot项目和后台ant design pro项目部署到服务器
- Ant Design Pro 改变默认启动端口号
- Ant Design Pro 使用文档
- Ant Design Pro 项目中iconfont本地化
- AntDesignPro of Vue---权限管理详解
- 让Ant Design Pro在服务器ECS上跑起来!
- Next.js+Ant-Design实现一个服务端渲染项目
- Ant Design Pro 开发记录
- 极客react之Ant Design Pro系列快速入门(九)-- 使用地图(高德地图)
- antDesignPro+umi配置路由菜单第一个hello work
- nodejs(13):使用 ant-design-pro-vue 修改配置文件打包 ,去掉sourceMap,保证代码安全
- Ant Design Pro of Vue记录
- Ant Design Pro快速入门
- Ant Design Pro---项目之前
- Ant Design Pro 上手备忘录
- 使用Ant Design Pro,一个企业级开箱即用的中后台前端
- 关于ant design pro框架找js页面的问题
- ant design pro从后端动态获得权限展示内容
- ant design pro 2.0 新页面探索 umi 页面404 react