当前位置: 首页 > news >正文

react axios 优化示例

使用 axios 是 React 项目中非常常见的 HTTP 请求库。为了提升 axios 在 React 中的性能、可维护性和用户体验,我们可以从 代码组织、请求优化 和 用户体验优化 多个角度进行详细的优化。

一、安装与基础配置

安装 axios

npm install axios

创建 Axios 实例

为了更好地管理请求配置和减少重复代码,建议创建 Axios 实例。

axios.js

import axios from "axios";const axiosInstance = axios.create({baseURL: "https://api.example.com", // API 的基础路径timeout: 10000, // 请求超时时间headers: {"Content-Type": "application/json",},
});// 请求拦截器
axiosInstance.interceptors.request.use((config) => {// 可以添加认证 tokenconst token = localStorage.getItem("token");if (token) {config.headers.Authorization = `Bearer ${token}`;}return config;},(error) => {return Promise.reject(error);}
);// 响应拦截器
axiosInstance.interceptors.response.use((response) => {return response.data; // 直接返回数据,简化调用},(error) => {if (error.response?.status === 401) {// 处理未授权逻辑window.location.href = "/login";}return Promise.reject(error);}
);
export default axiosInstance;

二、请求优化实践

1. 数据缓存

使用 React Query 或 SWR 实现数据缓存
结合 axios 使用 React Query 或 SWR,自动缓存数据,避免重复请求。

React Query 实现示例:

import { useQuery } from "react-query";
import axiosInstance from "./axios";const fetchData = async () => {const response = await axiosInstance.get("/data");return response;
};const MyComponent = () => {const { data, error, isLoading } = useQuery("dataKey", fetchData);if (isLoading) return 
http://www.lryc.cn/news/516683.html

相关文章:

  • 探索数字化展馆:开启科技与文化的奇幻之旅
  • 基于深度学习的视觉检测小项目(七) 开始组态界面
  • AI赋能跨境电商:魔珐科技3D数字人破解出海痛点
  • 【C/C++】nlohmann::json从文件读取json,并进行解析打印,实例DEMO
  • 安装Anaconda搭建Python环境,并使用VSCode作为IDE运行Python脚本
  • 我用AI学Android Jetpack Compose之入门篇(1)
  • 使用 Docker 查看 Elasticsearch 错误日志
  • 使用Apache Mahout制作 推荐引擎
  • Elasticsearch:利用 AutoOps 检测长时间运行的搜索查询
  • python二元表达式 三元表达式
  • 计算机网络 (22)网际协议IP
  • 【UI自动化测试】selenium八种定位方式
  • REMARK-LLM:用于生成大型语言模型的稳健且高效的水印框架
  • Android SPRD 工模测试修改
  • H3C CN3360B光纤存储交换机配置案例
  • 问题:Flask应用中的用户会话(Session)管理失效
  • Backend - C# 操作数据库 DB(ADO.NET、LINQ to SQL、EF)
  • JMeter + Grafana +InfluxDB性能监控 (二)
  • springCloud实战
  • 从优化算法到分布式训练-提升AI模型收敛速度的系统性分析【附核心实战代码】
  • 如何在 Windows 10/11 上录制带有音频的屏幕 [3 种简单方法]
  • 鸿蒙应用开发(2)
  • 单片机-LED点阵实验
  • 微服务-Nacos(注册中心)
  • 【Linux知识】shell编程知识科普
  • 小程序学习06——uniapp组件常规引入和easycom引入语法
  • 平安产险安徽分公司携手安徽中医药临床研究中心附属医院 共筑儿童安全防护网
  • C语言练习:求数组的最大值与最小值
  • c++ thread线程join、detach、joinable方法
  • 【算法刷题】leetcode hot 100 哈希篇