当前位置:首页 > React

react如何使用axios

2026-03-31 04:21:33React

使用 Axios 在 React 中发送 HTTP 请求

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

npm install axios
# 或
yarn add axios

基本 GET 请求示例

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

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 实例

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

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);
  }
);

取消请求

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

react如何使用axios

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 moment如何使用

react moment如何使用

安装 react-moment 通过 npm 或 yarn 安装 react-moment: npm install react-moment 或 yarn add react-moment 基本…

react如何销毁

react如何销毁

React 组件销毁的机制 在 React 中,组件的销毁通常由 React 的生命周期管理。当组件从 DOM 中移除时,React 会自动触发销毁相关的生命周期方法。以下是关键点: 组件的销毁通常…

react如何动画

react如何动画

React 动画实现方法 React 中实现动画可以通过多种方式,包括原生 CSS、第三方库或 React 内置的动画解决方案。以下是几种常见方法: 使用 CSS 动画和过渡 通过 CSS 的 tr…

如何同步react

如何同步react

同步React组件状态的方法 使用useState和useEffect钩子组合可以同步React组件的状态。useState用于声明状态变量,useEffect用于监听状态变化并执行副作用。 imp…

react如何安装

react如何安装

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

react如何引入echarts

react如何引入echarts

安装 ECharts 依赖 在 React 项目中安装 ECharts 核心库和 React 封装库: npm install echarts echarts-for-react 基础引入方式 创建…