1.替换mock数据:

1.将:.roadhogrc.mock.js 中的代理模式替换

当不使用代理的时候就会将所有 /api/的链接换成 http://localhost:8080/

export default noProxy ? {'GET /api/
':'http://localhost:8080/'} : delay(proxy, 1000);

2.启动:

如果你是win系统

npm run start:no-proxy

其他系统没试

更新 2.x

   proxy: {
'/task/job/': {
target: 'http://test.text:8090',
changeOrigin: true,
pathRewrite: { '^/task/': '' }, //这里是匹配进行替换 这样会直接请求接口http://test.text:8090/job/xxxxx
},
},

2.dva实践

1.model

比如model层里有goods.js文件【当然goods.js 必须在路由中设定 否则是无法访问到的】

路径: /common/router.js

 '/goods/list': {
component: dynamicWrapper(app, ['goods'], () => import('../routes/Goods/List')),
},

路径: /model/goods.js

//从service 层中获取得到  【etGoodslist,getCategoryAll,deleteGoods】
import { getGoodslist,getCategoryAll,deleteGoods} from '../services/api'; export default {
namespace: 'goods',
state: {
data: {
list: [],
pagination: {},
},
},
effects: {
//查询商品列表 //前端请求api
*list({ payload }, { call, put }) {
const response = yield call(getGoodslist, payload);
yield put({
type: 'goodslist',
payload: response,
});
},
//树形栏目
*category({payload},{call,put}){
const response = yield call(getCategoryAll, payload);
yield put({
type: 'goodsCategory',
payload: response,
});
},
//删除商品
*remove({payload},{call,put}){
const response = yield call(deleteGoods, payload);
yield put({
type: 'deletegoods',
payload: response,
});
}
}, reducers: {
//store层 返回给components
goodslist(state, action) {
return {
...state,
data: action.payload,
};
},
goodsCategory(state, action){
return {
...state,
treeData: action.payload,
};
},
deletegoods(state, action){
return {
...state,
data: action.payload,
};
}
},
};

service

路径 :/service/app.js

export async function getGoodslist(params) {
return request(`/api/goods/list?${stringify(params)}`);
}
export async function getCategoryAll(params) {
return request(`/api/category/all?${stringify(params)}`);
}
//删除商品
export async function deleteGoods(params){
return request(`/api/goods/delete?${stringify(params)}`);
}

components 更新数据

const treeData = this.props.goods.treeData;

实战 ant design pro 中的坑的更多相关文章

  1. Ant Design Pro中Transfer穿梭框的实际用法(与后端交互)

    Ant Design Pro中Transfer穿梭框的实际用法(与后端交互) 该控件的属性以及属性的作用在ADP的官方文档中都有介绍,但没有讲如何与后端交互,本文旨在讲解该控件与后端的交互. Ant ...

  2. 把antd的组件源码搬到Ant Design Pro中使用

    把组件源码搬过来后,样式死活不生效,经过1天的努力,有说less-loader的,有说webpack配置,还有说babel配置的,最后,我自己找到了方法 就是在global.less中使用@impor ...

  3. 【后台管理系统】—— Ant Design Pro 项目爬坑(一)

    1.表单rule中可以分对象处理不同规则 <FormItem label="类型名称" {...formLayout}> { form.getFieldDecorato ...

  4. ant design pro (十五)advanced 使用 API 文档工具

    一.概述 原文地址:https://pro.ant.design/docs/api-doc-cn 在日常开发中,往往是前后端分离的,这个时候约定好一套接口标准,前后端各自独立开发,就不会被对方的技术难 ...

  5. ant design pro (十一)advanced Mock 和联调

    一.概述 原文地址:https://pro.ant.design/docs/mock-api-cn Mock 数据是前端开发过程中必不可少的一环,是分离前后端开发的关键链路.通过预先跟服务器端约定好的 ...

  6. ant design pro (八)构建和发布

    一.概述 原文地址:https://pro.ant.design/docs/deploy-cn 二.详细 2.1.构建 当项目开发完毕,只需要运行一行命令就可以打包你的应用: npm run buil ...

  7. ant design pro (七)和服务端进行交互

    一.概述 原文地址:https://pro.ant.design/docs/server-cn Ant Design Pro 是一套基于 React 技术栈的单页面应用,我们提供的是前端代码和本地模拟 ...

  8. ant design pro(二)布局

    一.概述 参看地址:https://pro.ant.design/docs/layout-cn 其实在上述地址ant-design上已经有详细介绍,本文知识简述概要. 页面整体布局是一个产品最外层的框 ...

  9. Ant Design Pro快速入门

    在上一篇文章中,我们介绍了如何构建一个Ant Design Pro的环境. 同时讲解了如何启动服务并查看前端页面功能. 在本文中,我们将简单讲解如何在Ant Design Pro框架下实现自己的业务功 ...

随机推荐

  1. 一个时代的终结:为什么是时候放弃ITOM四大巨头了?这对IT领导者来说意味着什么?

    ​​关注嘉为科技,获取运维新知 2018年7月,Broadcom宣布了收购CA Technologies的计划,收购额近190亿美元.虽然分析师对于芯片制造商收购企业级软件公司这件事是否值得还在进行激 ...

  2. 『PyTorch』第十五弹_torch.nn.Module的属性设置&查询

    一.背景知识 python中两个属相相关方法 result = obj.name 会调用builtin函数getattr(obj,'name')查找对应属性,如果没有name属性则调用obj.__ge ...

  3. 『Python CoolBook』C扩展库_其四_结构体操作与Capsule

    点击进入项目 一.Python生成C语言结构体 C语言中的结构体传给Python时会被封装为胶囊(Capsule), 我们想要一个如下结构体进行运算,则需要Python传入x.y两个浮点数, type ...

  4. cookie,session和token的概念以及区别

    cookie: 采用客户端保存状态的方案: cookie的组成:名字,值过去时间,路径以及域: 没有设置时间:随着浏览器的打开和关闭决定: 设置了时间:浏览器就会把cookie保存在硬盘上,根据时间来 ...

  5. mysql安装和启动

    1.在cmd的bin目录执行 mysqld --initialize-insecure程序会在动MySQL文件夹下创建data文件夹以及对应的文件2.bin目录下执行,mysqld --install ...

  6. ORACLE中使用row_number over()排序

    from:http://blog.csdn.net/iw1210/article/details/11937085 意图:实现select top 1 * from tablename Oracle  ...

  7. vue中提示toFixed不是函数

     vue中toFixed获取小数点后两位 错误提示:.toFixed is not a function解决办法:Number(_this.group_cash).toFixed(2) 转自:http ...

  8. linux软件管理 软件安装

    软件包分类 1) 源代码包   脚本安装包 2) 二进制包   (RPM包,系统默认包) 源码包编译后形成二进制包 JDK的安装 下载jdk的文件解压 tar -zxvf jdk-8u144-linu ...

  9. with&as上下文管理协议

    通过with 方式调用的方式 class Open: def __init__(self,name): self.name = name def __enter__(self): #with调用的时候 ...

  10. python中字符串方法总结

    定义一个空字符串: a=' '; s.strip() #去空格 s.upper()#全部转换成大写: s.lower()# 全部转换成小写: s.isdigit()#判断字符串是否只有数字组成:返回t ...