axios 二次封装?
时间: 2023-10-09 22:14:16 浏览: 40
axios是一个流行的HTTP请求库,它在Node.js和浏览器中都可以使用。二次封装axios可以简化开发人员在项目中使用axios的复杂性,并提高代码的可维护性和可读性。
以下是一个简单的axios二次封装示例:
```javascript
import axios from 'axios';
const instance = axios.create({
baseURL: 'http://api.example.com',
timeout: 5000,
});
instance.interceptors.request.use(
(config) => {
// 在请求发送之前可以进行一些操作,例如添加请求头信息、设置请求超时时间等
return config;
},
(error) => {
return Promise.reject(error);
}
);
instance.interceptors.response.use(
(response) => {
// 在接收到响应数据之前可以进行一些操作,例如将数据格式化、检查错误码等
return response.data;
},
(error) => {
return Promise.reject(error);
}
);
export default instance;
```
上面的代码中,我们使用axios.create方法创建了一个axios实例,并设置了默认的baseURL和timeout。然后,我们使用interceptors属性添加了请求和响应拦截器,在请求发送前和响应数据到达前可以进行一些自定义操作。最后,我们将这个实例导出,供其他模块使用。
这样,在其他模块中使用axios时,只需导入我们封装好的axios实例即可:
```javascript
import axios from './axios';
axios.get('/users')
.then((response) => {
console.log(response);
})
.catch((error) => {
console.log(error);
});
```
这样就可以在项目中统一管理请求的配置和拦截器,避免了重复代码,提高了代码的可维护性和可读性。