当前位置:首页 > React

react如何使用axios

2026-03-31 04:21:33React

使用 Axios 在 React 中发送 HTTP 请求

安装 Axios 依赖
在项目中运行以下命令安装 Axios:

npm install axios
# 或
yarn add axios

基本 GET 请求示例

在组件中导入 Axios 并发送 GET 请求:

react如何使用axios

import axios from 'axios';
import React, { useEffect, useState } from 'react';

function App() {
  const [data, setData] = useState([]);

  useEffect(() => {
    axios.get('https://jsonplaceholder.typicode.com/posts')
      .then(response => {
        setData(response.data);
      })
      .catch(error => {
        console.error('Error fetching data:', error);
      });
  }, []);

  return (
    <div>
      {data.map(item => (
        <div key={item.id}>{item.title}</div>
      ))}
    </div>
  );
}

发送 POST 请求

发送数据到服务器并处理响应:

const handleSubmit = async () => {
  try {
    const response = await axios.post('https://jsonplaceholder.typicode.com/posts', {
      title: 'New Post',
      body: 'Content of the new post',
      userId: 1
    });
    console.log('Post created:', response.data);
  } catch (error) {
    console.error('Error creating post:', error);
  }
};

创建 Axios 实例

配置默认选项,避免重复代码:

react如何使用axios

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

// 使用实例
api.get('/posts').then(response => console.log(response.data));

处理错误响应

全局拦截错误或特定状态码:

axios.interceptors.response.use(
  response => response,
  error => {
    if (error.response.status === 404) {
      console.log('Resource not found');
    }
    return Promise.reject(error);
  }
);

取消请求

防止组件卸载时继续执行未完成的请求:

useEffect(() => {
  const source = axios.CancelToken.source();

  axios.get('/posts', { cancelToken: source.token })
    .then(response => console.log(response.data))
    .catch(thrown => {
      if (axios.isCancel(thrown)) {
        console.log('Request canceled:', thrown.message);
      } else {
        console.error('Error:', thrown);
      }
    });

  return () => {
    source.cancel('Component unmounted, request canceled');
  };
}, []);

注意事项

  • 在类组件中,可以将请求放在 componentDidMount 生命周期方法中
  • 使用 async/await 语法可以让代码更简洁
  • 对于大型项目,建议将 API 调用封装成单独的服务模块
  • 考虑添加 loading 状态和错误处理 UI 以提升用户体验

分享给朋友:

相关文章

如何手写一个react

如何手写一个react

手写一个简单的 React 创建一个基础的 React 实现需要理解其核心概念:虚拟 DOM、组件、状态管理和渲染。以下是一个简化版的 React 实现。 创建虚拟 DOM 虚拟 DOM 是真实 D…

react性能如何

react性能如何

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

react如何安装

react如何安装

安装React的步骤 确保已安装Node.js(建议版本12或更高),可通过以下命令检查版本: node -v npm -v 使用Create React App快速搭建项目(推荐): npx c…

如何清洁react

如何清洁react

清洁 React 项目的方法 删除未使用的依赖项 运行 npm ls 或 yarn list 检查已安装的依赖项,使用 npm uninstall <package> 或 yarn rem…

小白如何搭建react

小白如何搭建react

安装 Node.js 和 npm 确保系统已安装 Node.js(包含 npm)。可通过官网下载安装包(https://nodejs.org/),选择 LTS 版本。安装完成后,终端运行以下命令验证版…

react如何上传文件

react如何上传文件

使用React上传文件的方法 使用HTML的input元素和FormData 创建一个文件输入字段,通过onChange事件获取文件对象,使用FormData将文件数据发送到服务器。 import…