当前位置:首页 > React

react如何封装axios

2026-03-31 03:20:47React

封装 Axios 的步骤

在 React 中封装 Axios 可以简化 HTTP 请求的调用,统一处理错误和配置。以下是一个常见的封装方法。

创建 Axios 实例

创建一个自定义的 Axios 实例,设置默认配置,如基础 URL、超时时间和请求头。

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) => {
    return Promise.reject(error);
  }
);

添加响应拦截器

在响应返回时,可以统一处理错误和数据格式。

instance.interceptors.response.use(
  (response) => {
    return response.data;
  },
  (error) => {
    if (error.response) {
      switch (error.response.status) {
        case 401:
          console.error('Unauthorized');
          break;
        case 404:
          console.error('Not Found');
          break;
        default:
          console.error('Server Error');
      }
    }
    return Promise.reject(error);
  }
);

封装 HTTP 请求方法

将常用的 HTTP 方法(GET、POST、PUT、DELETE)封装为函数,方便调用。

react如何封装axios

export const get = (url, params) => {
  return instance.get(url, { params });
};

export const post = (url, data) => {
  return instance.post(url, data);
};

export const put = (url, data) => {
  return instance.put(url, data);
};

export const del = (url) => {
  return instance.delete(url);
};

使用封装的 Axios

在组件中直接调用封装好的方法,避免重复代码。

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

const fetchData = async () => {
  try {
    const response = await get('/users');
    console.log(response);
  } catch (error) {
    console.error(error);
  }
};

const createUser = async (userData) => {
  try {
    const response = await post('/users', userData);
    console.log(response);
  } catch (error) {
    console.error(error);
  }
};

统一导出 API

将所有 API 请求集中管理,便于维护和调用。

export const fetchUsers = () => get('/users');
export const createUser = (data) => post('/users', data);
export const updateUser = (id, data) => put(`/users/${id}`, data);
export const deleteUser = (id) => del(`/users/${id}`);

注意事项

封装时需考虑错误处理的统一性,避免在每个请求中重复处理错误。拦截器的逻辑应尽量简洁,避免过于复杂的逻辑影响性能。

标签: reactaxios
分享给朋友:

相关文章

如何降低react版本

如何降低react版本

降低 React 项目版本的步骤 检查当前 React 版本 在项目根目录的 package.json 文件中查看 dependencies 或 devDependencies 下的 react 和…

如何react页面

如何react页面

创建 React 页面 使用 create-react-app 快速初始化项目: npx create-react-app my-app cd my-app npm start 编写组件代码 在 s…

react性能如何

react性能如何

React 性能特点 React 通过虚拟 DOM(Virtual DOM)和高效的 diff 算法优化性能。虚拟 DOM 减少了直接操作真实 DOM 的开销,仅在必要时更新变化的部分。React 的…

react如何浮动

react如何浮动

使用 CSS 实现浮动 在 React 中实现浮动效果可以通过 CSS 的 float 属性完成。在组件的样式文件或内联样式中直接设置 float: left 或 float: right。 /…

如何启动react

如何启动react

安装Node.js 确保系统已安装Node.js(建议使用LTS版本),可通过官网下载并安装。安装完成后,在终端运行以下命令验证版本: node -v npm -v 创建React项目 使用官方工具…

react如何重置

react如何重置

重置 React 应用的状态 使用 useState 钩子重新初始化状态变量是最直接的方法。将状态变量重置为初始值或空值即可完成重置。 const [count, setCount] = useSt…