实践webpack+es6+react+redux+antd构建项目(三) 配置proxy代理

释放双眼,带上耳机,听听看~!

上一篇是关于引入react,redux,antd的,项目已经可以正常运行了,但是拿到的都是定义的死数据。这篇文章讲一下配置代理,调mock数据。

简便起见,我使用的是Easy Mock,定义好mock数据,在项目中引入使用。

先说一下Easy Mock的使用方法,

创建一个项目,

实践webpack+es6+react+redux+antd构建项目(三) 配置proxy代理

创建好之后,进入刚才创建的这个项目

实践webpack+es6+react+redux+antd构建项目(三) 配置proxy代理

 创建接口

实践webpack+es6+react+redux+antd构建项目(三) 配置proxy代理

 并在左侧添加数据

创建好之后,就是要在项目中使用了。

webpack.config.js中设置

devServer中添加


1
2
3
4
5
6
7
8
1        // 配置easymock代理
2        proxy: {
3            "/api":{
4                changeOrigin: true,
5                target: "https://www.easy-mock.com/mock/5c24adb39a96a934e48de313"
6            }
7        }
8

上面写法会找到 /api/的接口,然后代理到target的路径上去

 

参考:https://www.webpackjs.com/configuration/dev-server/\#devserver-proxy

request中使用的方法是fetch

接口请求


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
1import request from '../../utils/request';
2
3const listData = res => ({
4    type: 'LIST_DATA',
5    payload: res
6});
7
8export const getTodoList = (params, fn) => async (dispatch) => {
9    try {
10        const result = await request('/api/change/list', {
11            method: 'GET',
12            data: params
13        });
14        await dispatch(listData(result.data));
15        fn();
16    } catch (error) {
17
18    }
19}
20

/api是必须要有的,会匹配找到以/api开始的接口,代理到target的路径上,访问数据的路径就是

https://www.easy-mock.com/mock/5c24adb39a96a934e48de313/api/change/list

基本都是可以拿到数据的,如果没有拿到,不要慌,一般都是路径上的问题,

request.js


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
1export default async function request(url, options) {
2    return requestDataProcess(url, options);
3}
4async function requestDataProcess(url, options) {
5    if (/post/i.test(options.method)) {
6        let { data } = options;
7        let body = null;
8        if (typeof data === 'string') {
9            body = data;
10        } else {
11            body = JSON.stringify(data);
12        }
13        options.body = body;
14        delete options.data;
15    }
16    let headers = {};
17    headers['Content-Type'] = 'application/json';
18    options.headers = headers;
19
20    const result = await fetch(url, options).then(res => res.json());
21    return result;
22}
23
24

我使用的是比较简单的代理,如果需要使用的复杂的,可以参考官网。

链接:实践webpack+es6+react+redux+antd构建项目(一) webpack配置

**           **实践webpack+es6+react+redux+antd构建项目(二) react,redux,antd引入

           实践webpack+es6+react+redux+antd构建项目(四) 区分dev和prod环境

           项目github地址

关注我获取更多前端资源和经验分享

实践webpack+es6+react+redux+antd构建项目(三) 配置proxy代理

 

感谢大佬们阅读,希望大家头发浓密,睡眠良好,情绪稳定,早日实现财富自由~

 

给TA打赏
共{{data.count}}人
人已打赏
安全技术

常用加密解密算法【RSA、AES、DES、MD5】介绍和使用

2021-8-18 16:36:11

安全技术

C++ 高性能服务器网络框架设计细节

2022-1-11 12:36:11

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索