Vue3.0的axios封裝教程

Vue3.0是目前比較流行的前端框架之一,而axios則是目前比較常用的前端數據請求工具。 axios是基於Promise的HTTP客戶端,可以在瀏覽器和Node.js中使用。Vue3.0在封裝axios方面也有很多值得我們學習的思路和方法。本篇文章將從多個方面對Vue3.0中axios的封裝做出詳細闡述。

一、安裝和初始化axios

在使用Vue3.0中的axios之前,我們需要先安裝axios。可以通過npm進行安裝:

npm install axios --save

然後在main.js中,我們可以將axios掛載到Vue的原型鏈上,這樣我們在組件中就可以通過this.$axios來使用axios

//在main.js中
import axios from 'axios'
import App from './App.vue'
import router from './router'

Vue.prototype.$axios = axios

new Vue({
  el: '#app',
  router,
  components: { App },
  template: ''
})

二、axios的全局配置

在Vue3.0中,我們可以通過axios.create()方法創建一個axios實例,並配置一些全局屬性。例如設置請求的基本URL,設置請求頭等等。 在main.js中可以這樣配置:

//在main.js中
import axios from 'axios'
import App from './App.vue'
import router from './router'

const http = axios.create({
  baseURL: 'http://api.example.com/'
})

//可以設置請求頭
http.defaults.headers.common['Authorization'] = 'Bearer ' + localStorage.getItem('token')
Vue.prototype.$http = http

new Vue({
  el: '#app',
  router,
  components: { App },
  template: ''
})

三、axios的攔截器

攔截器是axios中非常重要的功能之一,可以在請求發出前和響應返回前進行攔截,用來處理請求或響應的一些共性操作。 Vue3.0中提供了一種捕獲全局錯誤並把錯誤信息反饋給用戶的方式,使用axios攔截器可以很容易地實現這樣的功能。

const http = axios.create({
  baseURL: 'http://api.example.com/'
})

//添加請求攔截器
http.interceptors.request.use(function (config) {
  //在發送請求之前做些什麼
  return config;
}, function (error) {
  // 對請求錯誤做些什麼
  return Promise.reject(error);
});

//添加響應攔截器
http.interceptors.response.use(function (response) {
  //對響應數據做點什麼
  return response;
}, function (error) {
  //如果捕獲到了401狀態碼,說明登錄過期或者未登錄,就可以彈出登錄框,請用戶重新登錄
  if (error.response.status === 401) {
    //彈出登錄框邏輯
  }
  // 對響應錯誤做點什麼
  return Promise.reject(error);
});

四、封裝axios的request方法

在使用axios進行請求的時候,我們可以根據需要在組件中多次調用,但這樣會將一些公共的請求參數反覆寫入組件。我們可以將這些共性操作封裝在一個request方法中,方便多次使用。例如:

//在api.js中
import axios from "axios";

const instance = axios.create({
  baseURL: "http://api.example.com",
  timeout: 10000
});

const request = async (options) => {
  try {
    const response = await instance(options);
    return response.data;
  } catch (error) {
    console.error(error);
  }
};

export { request, instance };

在組件中直接引入並使用:

//在組件中
import { request } from "@/api";

const getUser = async () => {
  const data = await request({
    method: "get",
    url: "/users",
    params: {
      id: 1,
    },
  });

  console.log(data);
};

總結

本篇文章通過多個方面對Vue3.0中axios的封裝做出詳細闡述。首先介紹了axios的安裝和初始化,然後引入了全局配置和攔截器兩種功能,最後介紹了將多次使用的請求封裝在一個request方法中的技巧。通過這些方式,我們可以更加簡便地使用axios,並可以進行一些全局的錯誤處理、基礎URL配置等功能。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/240171.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 12:20
下一篇 2024-12-12 12:20

相關推薦

  • MQTT使用教程

    MQTT是一種輕量級的消息傳輸協議,適用於物聯網領域中的設備與雲端、設備與設備之間的數據傳輸。本文將介紹使用MQTT實現設備與雲端數據傳輸的方法和注意事項。 一、準備工作 在使用M…

    編程 2025-04-29
  • Python3.6.5下載安裝教程

    Python是一種面向對象、解釋型計算機程序語言。它是一門動態語言,因為它不會對程序員提前聲明變量類型,而是在變量第一次賦值時自動識別該變量的類型。 Python3.6.5是Pyt…

    編程 2025-04-29
  • Deepin系統分區設置教程

    本教程將會詳細介紹Deepin系統如何進行分區設置,分享多種方式讓您了解如何規劃您的硬盤。 一、分區的基本知識 在進行Deepin系統分區設置之前,我們需要了解一些基本分區概念。 …

    編程 2025-04-29
  • 寫代碼新手教程

    本文將從語言選擇、學習方法、編碼規範以及常見問題解答等多個方面,為編程新手提供實用、簡明的教程。 一、語言選擇 作為編程新手,選擇一門編程語言是很關鍵的一步。以下是幾個有代表性的編…

    編程 2025-04-29
  • Qt雷達探測教程

    本文主要介紹如何使用Qt開發雷達探測程序,並展示一個簡單的雷達探測示例。 一、環境準備 在開始本教程之前,需要確保你的開發環境已經安裝Qt和Qt Creator。如果沒有安裝,可以…

    編程 2025-04-29
  • 猿編程python免費全套教程400集

    想要學習Python編程嗎?猿編程python免費全套教程400集是一個不錯的選擇!下面我們來詳細了解一下這個教程。 一、課程內容 猿編程python免費全套教程400集包含了從P…

    編程 2025-04-29
  • 使用axios獲取返回圖片

    使用axios獲取返回圖片是Web開發中很常見的需求。本文將介紹如何使用axios獲取返回圖片,並從多個方面進行詳細闡述。 一、安裝axios 使用axios獲取返回圖片前,首先需…

    編程 2025-04-29
  • Python煙花教程

    Python煙花代碼在近年來越來越受到人們的歡迎,因為它可以讓我們在終端里玩煙花,不僅具有視覺美感,還可以通過代碼實現動畫和音效。本教程將詳細介紹Python煙花代碼的實現原理和模…

    編程 2025-04-29
  • 使用Snare服務收集日誌:完整教程

    本教程將介紹如何使用Snare服務收集Windows服務器上的日誌,並將其發送到遠程服務器進行集中管理。 一、安裝和配置Snare 1、下載Snare安裝程序並安裝。 https:…

    編程 2025-04-29
  • Python畫K線教程

    本教程將從以下幾個方面詳細介紹Python畫K線的方法及技巧,包括數據處理、圖表繪製、基本設置等等。 一、數據處理 1、獲取數據 在Python中可以使用Pandas庫獲取K線數據…

    編程 2025-04-28

發表回復

登錄後才能評論