当前位置:首页 > React

react如何封装axios

2026-02-12 00:13:23React

封装axios的基本步骤

在React中封装axios可以提高代码复用性、统一错误处理和请求配置。以下是一个常见的封装方法:

创建独立的axios实例文件(如api.js):

import axios from 'axios';

const instance = axios.create({
  baseURL: 'https://api.example.com',
  timeout: 10000,
  headers: {'Content-Type': 'application/json'}
});

请求拦截器处理

添加请求拦截器用于统一处理token等认证信息:

react如何封装axios

instance.interceptors.request.use(
  config => {
    const token = localStorage.getItem('token');
    if (token) {
      config.headers.Authorization = `Bearer ${token}`;
    }
    return config;
  },
  error => Promise.reject(error)
);

响应拦截器处理

添加响应拦截器统一处理响应数据和错误:

instance.interceptors.response.use(
  response => {
    if (response.data.code === 200) {
      return response.data;
    }
    return Promise.reject(response.data);
  },
  error => {
    if (error.response) {
      switch (error.response.status) {
        case 401:
          // 处理未授权
          break;
        case 404:
          // 处理未找到
          break;
        default:
          console.error('请求错误');
      }
    }
    return Promise.reject(error);
  }
);

封装常用请求方法

封装GET、POST等常用方法:

react如何封装axios

export const get = (url, params) => instance.get(url, { params });
export const post = (url, data) => instance.post(url, data);
export const put = (url, data) => instance.put(url, data);
export const del = url => instance.delete(url);

使用示例

在组件中使用封装好的方法:

import { get, post } from './api';

// GET请求
get('/users', { page: 1 })
  .then(data => console.log(data))
  .catch(err => console.error(err));

// POST请求
post('/login', { username, password })
  .then(data => console.log(data))
  .catch(err => console.error(err));

高级配置选项

可添加更多自定义配置:

export const request = (options) => {
  return instance({
    method: options.method || 'get',
    url: options.url,
    params: options.params,
    data: options.data,
    ...options.config
  });
};

类型安全(TypeScript)

使用TypeScript增加类型定义:

interface ResponseData<T = any> {
  code: number;
  data: T;
  message: string;
}

export const get = <T>(url: string, params?: any): Promise<ResponseData<T>> => {
  return instance.get(url, { params });
};

这种封装方式提供了统一的错误处理、请求配置和响应处理,使项目中的HTTP请求更加规范且易于维护。

标签: reactaxios
分享给朋友:

相关文章

react如何使用

react如何使用

React 的基本使用 React 是一个用于构建用户界面的 JavaScript 库,以下是一些核心概念和使用方法。 安装 React 通过 create-react-app 快速搭建 React…

react架构如何

react架构如何

React 架构核心概念 React 的架构围绕组件化、虚拟 DOM 和单向数据流设计。组件是构建用户界面的独立模块,分为函数组件和类组件。虚拟 DOM 通过高效的 Diff 算法减少直接操作真实 D…

如何安装react

如何安装react

安装React的方法 方法一:使用Create React App(官方推荐) Create React App是官方提供的脚手架工具,适合快速搭建React项目。确保已安装Node.js(建议版本≥…

react如何下载

react如何下载

安装 React 的步骤 通过 npm 或 yarn 安装 React,确保已安装 Node.js(版本建议 ≥ 14.0.0)。打开终端或命令行工具,运行以下命令: npx create-reac…

react如何注销

react如何注销

React 组件的注销方法 在 React 中,组件的注销通常指的是在组件卸载时执行清理操作,例如取消订阅、清除定时器或释放资源。以下是几种常见的方法: 使用 useEffect 钩子的清理函数…

react如何发布

react如何发布

发布React应用的步骤 构建生产版本 使用以下命令生成优化后的生产版本代码,代码会被压缩并移除开发环境中的调试工具: npm run build 构建完成后会生成build文件夹,包含所有静态资源…