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

axios和fetch的对比

axiosfetch 是用于发起 HTTP 请求的两种常见工具,它们的主要区别如下:

1. 浏览器兼容性

  • axios:基于 XMLHttpRequest,兼容性较好,支持较旧的浏览器(如 IE11)。
  • fetch:现代浏览器原生支持,但不兼容 IE 等旧浏览器,可能需要 polyfill。

2. API 设计

  • axios:API 设计简洁,支持链式调用,使用 Promise,提供便捷的请求和响应拦截器。
  • fetch:API 较底层,返回 Promise,但需要手动处理 JSON 转换和状态码检查。

3. 请求和响应处理

  • axios:自动转换 JSON 数据,响应数据在 data 属性中,提供请求和响应拦截器。
  • fetch:需手动调用 .json() 方法解析 JSON,且不会自动处理错误状态码(如 404、500)。

4. 错误处理

  • axios:HTTP 错误状态码(如 404、500)会触发 catch,便于统一处理。
  • fetch:仅在网络故障时触发 catch,HTTP 错误状态码需手动处理。

5. 取消请求

  • axios:支持通过 CancelTokenAbortController 取消请求。
  • fetch:仅支持 AbortController 取消请求。

6. 进度监控

  • axios:支持上传和下载进度监控。
  • fetch:不直接支持进度监控,需通过其他方式实现。

7. 体积

  • axios:体积较大(约 13KB)。
  • fetch:原生支持,无需额外引入。

示例代码

axios
axios.get('https://api.example.com/data')
  .then(response => console.log(response.data))
  .catch(error => console.error(error));
fetch
fetch('https://api.example.com/data')
  .then(response => {
    if (!response.ok) throw new Error('Network response was not ok');
    return response.json();
  })
  .then(data => console.log(data))
  .catch(error => console.error(error));

总结

  • axios:功能丰富,使用方便,适合复杂场景。
  • fetch:轻量、现代,适合简单场景或对包大小敏感的项目。

根据项目需求选择合适的工具。

http://www.dtcms.com/a/80909.html

相关文章:

  • 【在校课堂笔记】Python 第6节课 总结
  • 计算机毕业设计:小型图书管理系统设计与实现
  • Nginx
  • ‌C# I/O 核心用法
  • 【408计算机网络-自顶向下-应用层】-简单描述概念PPT-中国科学技术大学-郑老师-计算机网络课程的深度复习资料
  • PostgreSQL 存储过程
  • manacher 算法详解
  • Vulnhub靶机:Web Machine(N7)
  • 外贸网络专线推荐——SD-WAN灵活且高效!
  • 蓝桥杯练习day3:反转字符串II
  • 从“制造”到“智造”,看中集“灯塔”生产线与永洪“数据技术”的紧密融合
  • CentOS 7.9 安装 Python 3.10 详细步骤及常见问题解决
  • FPGA 以太网通信(一)
  • java常用数据转换
  • 软件设计师笔记持续更新-看学以致知视频笔记
  • 中微单片机学习--SC8F072
  • 【蓝桥杯速成】| 8.回溯算法
  • C语言 第五章 指针(3)
  • 实用工具-Another Redis Desktop Manager介绍
  • electron桌面应用多种快速创建方法
  • 如何通过Odoo 18创建与配置服务器操作
  • 楼宇自控系统的结构密码:总线与分布式结构方式的差异与应用
  • Jackson 库进行 JSON 序列化时遇到了 ‌无限递归(Infinite Recursion)‌ 问题
  • 嵌入式笔记 | 正点原子STM32F103ZET6 5 | 串口通信
  • kafka的文章
  • C#从入门到精通(1)
  • 路由Vue Router基本用法
  • QEMU 中 x86_cpu_realizefn 到 ept_emulation_fault 的调用流程解析(macos)
  • 数据库的两种模式
  • 国内首家,百度智能云千帆AppBuilder全面兼容MCP协议