vue.js

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript类库 > vue.js > VUE之await fetch与await axios.get区别

VUE之await fetch与await axios.get的区别及说明

作者:Tzq@2018

想知道用await fetch还是axios.get更好?这篇对比直接告诉你核心区别:fetch是原生API但需手动解析JSON和错误,而axios自动处理JSON、拦截HTTP错误,点击查看代码实例,学会如何用更少的代码完成请求

一、await fetch与await axios.get的区别

在 JavaScript 中,fetch 是原生的 Web API,用于发起 HTTP 请求(如 GET、POST),而 axios 是一个第三方库(基于 Promise 的 HTTP 客户端)。

两者都支持使用 await 语法(在 async 函数中)来处理异步操作,因为 fetch()axios.get() 都返回一个 Promise 对象。

以下是详细的区别:

1.1、核心区别

1.2、其他关键差异

错误处理

JSON 解析

易用性与功能

浏览器支持:

二、代码示例

下面用 JavaScript 展示两者在 async/await 中的典型用法,处理一个 GET 请求到 “https://jsonplaceholder.typicode.com/posts/1”(这是一个公共 API)。

2.1、示例 1: 使用fetch实现

// 假设在 async 函数内
try {
  // 发起 GET 请求
  const response = await fetch('https://jsonplaceholder.typicode.com/posts/1');
  
  // 检查 HTTP 状态码:如果非 2xx,需手动抛出错误
  if (!response.ok) {
    throw new Error(`HTTP error! status: ${response.status}`); // 如 404
  }
  
  // 解析 JSON 数据(fetch 要求显式解析)
  const data = await response.json();
  console.log('Fetch result:', data);
} catch (error) {
  // 捕获网络错误或手动抛出的错误
  console.error('Fetch error:', error.message);
}

解释

2.2、示例 2: 使用axios.get()实现

// 安装 axios:npm install axios
const axios = require('axios'); // 或 import axios from 'axios';

// 假设在 async 函数内
try {
  // 发起 GET 请求,axios.get() 自动处理 JSON 解析和错误
  const response = await axios.get('https://jsonplaceholder.typicode.com/posts/1');
  
  // 数据直接存在于 response.data 中
  console.log('Axios result:', response.data);
} catch (error) {
  // 自动捕获网络错误或非 2xx HTTP 错误
  console.error('Axios error:', error.message); // 包括 404 等错误
}

解释

三、总结

两者在 await 机制下都是异步的,核心区别在于易用性、特性和内置逻辑。axios 是更高级的封装,提供了更开发友好的体验。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文