当前位置:首页 > 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 提供了多种查询 DOM 元素的方式,以下是几种常见的方法: 使用 ref 通过 useRef 钩子可以获取 DOM 节点的引用,适用于直接操作 DOM 的场景。…

react如何检测

react如何检测

检测 React 应用的方法 使用 PropTypes 进行类型检查 PropTypes 是 React 内置的类型检查工具,用于验证组件的 props 是否符合预期。在开发环境中,PropTypes…

react 如何debug

react 如何debug

React 调试方法 使用 React Developer Tools React Developer Tools 是浏览器扩展,支持 Chrome 和 Firefox。安装后,可以在开发者工具中查看…

react如何注销

react如何注销

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

typescript react 如何

typescript react 如何

TypeScript 与 React 结合使用的方法 在 React 项目中使用 TypeScript 可以提升代码的可维护性和类型安全性。以下是一些关键步骤和最佳实践: 安装 TypeScript…

react如何debugger

react如何debugger

调试 React 应用的方法 使用浏览器开发者工具进行调试 React 开发者工具(React DevTools)是调试 React 应用的必备工具。安装 Chrome 或 Firefox 扩展后,可…