React封装网络请求
时间: 2023-10-25 07:26:56 浏览: 93
在React中封装网络请求可以使用各种库,如axios、fetch等。下面是一个简单的示例,演示如何使用axios来封装网络请求:
1. 首先,安装axios库:
```
npm install axios
```
2. 创建一个名为api.js的文件,用于封装所有的API请求:
```jsx
import axios from 'axios';
// 封装GET请求
export const get = async (url, params) => {
try {
const response = await axios.get(url, { params });
return response.data;
} catch (error) {
console.error(error);
throw error;
}
};
// 封装POST请求
export const post = async (url, data) => {
try {
const response = await axios.post(url, data);
return response.data;
} catch (error) {
console.error(error);
throw error;
}
};
```
3. 在需要发送网络请求的组件中使用封装的API方法:
```jsx
import React, { useEffect, useState } from 'react';
import { get } from './api';
const MyComponent = () => {
const [data, setData] = useState(null);
useEffect(() => {
const fetchData = async () => {
try {
const result = await get('https://api.example.com/data');
setData(result);
} catch (error) {
// 处理错误
}
};
fetchData();
}, []);
if (!data) {
return <div>Loading...</div>;
}
return (
<div>
{/* 使用获取到的数据 */}
{data.map((item) => (
<div key={item.id}>{item.name}</div>
))}
</div>
);
};
export default MyComponent;
```
这是一个简单的示例,你可以根据实际需求进行扩展和修改。封装网络请求可以使代码更加模块化和可复用,同时也方便统一处理错误和请求拦截等操作。
阅读全文