React中封装Axios

以下是一个在 React 中封装  Axios  的示例:

import axios from 'axios';

class HttpService {

  constructor(baseURL) {

    this.instance = axios.create({

      baseURL

    });

  }

 

  get(url, config = {}) {

    return this.instance.get(url, config);

  }

 

  post(url, data, config = {}) {

    return this.instance.post(url, data, config);

  }

 

  put(url, data, config = {}) {

    return this.instance.put(url, data, config);

  }

 

  delete(url, config = {}) {

    return this.instance.delete(url, config);

  }

}

 

export default HttpService;

 

 

在您的 React 组件中,可以这样使用:

 

import HttpService from './HttpService';

 

const httpService = new HttpService('https://your-base-url.com');

 

// 发送 GET 请求

httpService.get('/your-endpoint')

 .then(response => {

    // 处理响应

  })

 .catch(error => {

    // 处理错误

  });

 

// 发送 POST 请求

httpService.post('/your-endpoint', { key: 'value' })

 .then(response => {

    // 处理响应

  })

 .catch(error => {

    // 处理错误

  });

 

同时可以根据具体的需求在封装类中添加更多的功能,比如请求拦截器、响应拦截器、错误处理等。

好的,以下是一个简单的封装 axiosReact TypeScript 代码示例: ```typescript import axios, { AxiosRequestConfig, AxiosResponse } from 'axios'; interface ResponseData { code: number; data: any; message: string; } // 自定义错误类型 interface CustomError extends Error { response?: AxiosResponse<ResponseData>; } const instance = axios.create({ baseURL: 'https://your-api-url.com', timeout: 5000, }); // 请求拦截器 instance.interceptors.request.use( (config: AxiosRequestConfig) => { // 在请求发送之前做一些处理 return config; }, (error: CustomError) => { // 处理请求错误 return Promise.reject(error); } ); // 响应拦截器 instance.interceptors.response.use( (response: AxiosResponse<ResponseData>) => { // 对响应数据做一些处理 if (response.data.code !== 200) { // 如果返回的数据 code 不是 200,说明请求出错 const error: CustomError = new Error(response.data.message); error.response = response; throw error; } return response.data; }, (error: CustomError) => { // 处理响应错误 return Promise.reject(error); } ); export default instance; ``` 这段代码,我们首先定义了一个 `ResponseData` 接口,用于表示接口返回的数据格式。然后我们定义了一个 `CustomError` 接口,用于自定义错误类型,方便我们在拦截器处理错误信息。接着我们创建了一个 axios 实例,并在实例配置了一些基本信息,包括请求超时时间和请求的基础 URL。 接下来,我们定义了请求拦截器和响应拦截器。在请求拦截器,我们可以对请求发送之前的一些处理,例如添加请求头或者对请求参数进行加密等。在响应拦截器,我们可以对返回的数据进行处理,例如对错误码进行判断,或者对返回的数据进行格式化等。 最后,我们将我们封装好的 axios 实例导出,便于在项目进行使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值