Ein vollständiges Tutorial zur Verwendung der Axios-Kapselung in Vue

Ein vollständiges Tutorial zur Verwendung der Axios-Kapselung in Vue

Vorwort

Heutzutage wird in Projekten häufig die Axios-Bibliothek für HTTP-Schnittstellenanforderungen verwendet. Es handelt sich um eine auf Versprechen basierende HTTP-Bibliothek, die im Browser und in node.js ausgeführt werden kann. Darüber hinaus verfügt es über hervorragende Funktionen wie das Abfangen von Anfragen und Antworten, die Konvertierung von JSON-Daten und einen clientseitigen Schutz gegen XSRF.

In Anbetracht der Tatsache, dass die Schreibmethoden verwirrend und inkonsistent sind, wenn sie tatsächlich in verschiedenen Projekten verwendet werden. Axios ist auf allgemeine Weise gekapselt, um den Code zu vereinfachen und spätere Aktualisierungen und Wartungsarbeiten zu erleichtern, indem es so allgemein wie möglich gehalten wird.

So geht’s

1. Installieren Sie Axios in Vue

	npm installiere axios -S
	Oder npm i axios -S

2. Globaler Import in main.js

	Axios von „Axios“ importieren
	Vue.prototype.$axios = axios //Bindet axios an den Prototyp von Vue

3. Konfigurieren Sie Cross-Domain in vue.config.js im Stammverzeichnis

	modul.exporte = {
	 öffentlicher Pfad: './',
	 //Domänenübergreifende Anfragen konfigurieren devServer: {
	  open: true, // Ob der Browser automatisch geöffnet werden soll https: false, // Ob https aktiviert werden soll
	  hotOnly: falsch,
	  Proxy: { // Domänenübergreifendes Konfigurieren von '/API': {
	    Ziel: 'http://********', //Schnittstellendomänenname anfordern ws: true,
	    sicher: falsch,
	    changOrigin: true, //Ob Kreuzungen erlaubt sein sollen pathRewrite: {
	     '^/api': ''
	    }
	   }
	  },
	  vorher: app => { }
	 }
	}

4. Erstellen Sie eine api.js-Datei im Ordner api im Unterverzeichnis src, um Axios einfach zu kapseln

Axios von „Axios“ importieren
//Hier verweisen wir auf das Laden des Elements im Vollbildmodus. Importieren Sie { Loading } von "element-ui";

const service = axios.create({
 Basis-URL: '/',
 timeout: 30000 // Anforderungs-Timeout festlegen})
let laden = "";
//Interceptor anfordern service.interceptors.request.use(
 (Konfiguration) => {
  // Führen Sie eine Verarbeitung durch, bevor die Anfrage gesendet wird, if (!(config.headers['Content-Type'])) {
   wird geladen = wird geladen.service({
    Sperre: wahr,
    Text: „Wird geladen …“,
    Spinner: "el-icon-loading",
    Hintergrund: "rgba(255,255,255,0.7)",
    benutzerdefinierte Klasse: "Anfrage wird geladen",
   });
   wenn (Konfigurationsmethode == 'post') {
    config.headers['Inhaltstyp'] =
     „Anwendung/json;Zeichensatz=UTF-8“
    für (var key in config.data) {
     wenn (Konfigurationsdaten[Schlüssel] === '') {
      config.data[Schlüssel] löschen
     }
    }
    Konfigurationsdaten = JSON.stringify(Konfigurationsdaten)
   } anders {
    config.headers['Inhaltstyp'] =
     „Anwendung/x-www-form-urlencoded;Zeichensatz=UTF-8“
    Konfigurationsdaten = JSON.stringify(Konfigurationsdaten)
   }
  }
  Konstantentoken = "Token"
  // Jede Anfrage muss ein Token enthalten -- ['X-Token'] ist ein benutzerdefinierter Schlüssel. Bitte ändern Sie ihn entsprechend der tatsächlichen Situation. if (token) {
   config.headers['Autorisierung'] = Token
  }
  Konfiguration zurückgeben
 },
 (Fehler) => {
  wird geladen.schließen();
  // Senden von console.log (Fehler) fehlgeschlagen
  returniere Promise.reject(Fehler)
 }
)

// Antwort-Interceptor service.interceptors.response.use(
 (Antwort) => {

  wird geladen.schließen();
  // dataAxios sind die von axios zurückgegebenen Daten.
  // wird geladenInstance.close();
  const dataAxios = antwort.data
  // Dieser Statuscode ist die mit dem Backend vereinbarte Rückgabe von dataAxios
 },
 (Fehler) => {
  returniere Promise.reject(Fehler)
 }
)

	Standarddienst exportieren

5. Erstellen Sie eine http-Datei im API-Ordner

 // Importieren Sie die gepackten Axios
 // ps: Wenn keine Kapselung vorhanden ist, können Sie Axios aus "./api" importieren.
	// /api ist die Pfadvariable für die domänenübergreifende Konfiguration let reportUpload= '/api/report/upload'
  export const Upload= () => {
   gibt axios.get zurück (reportUpload)
  }

6. Rufen Sie die Schnittstelle auf der Seite auf

//Einführung der gekapselten Schnittstelle import { Upload} from "@/api/http.js"; 

// Aufruf mit asynchronem Upload() {
  let { Ergebnis } = warte auf getlist ();
  	console.log(Ergebnis)
 },

Zusammenfassen

Dies ist das Ende dieses Artikels über die Verwendung der Axios-Kapselung in Vue. Weitere relevante Inhalte zur Axios-Kapselung in Vue finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • So verwenden Sie Vue-axios für die Dateninteraktion
  • Vue-Projektpraxis: Elegante Nutzung von Axios
  • So verwenden Sie Axios-Anfragen im Vue-Projekt
  • Globale Verwendung der Axios-Operation in Vue
  • Detaillierte Erklärung der Verwendung von Axios in Vue

<<:  Detaillierte Erläuterung der KVM-Bereitstellung von drei virtuellen Maschinen zur Implementierung des WordPress-Experiments

>>:  Lösung für MySQLSyntaxErrorException beim Herstellen einer Verbindung zu MySQL über Bitronix

Artikel empfehlen

Analysieren des MySQL-Binärprotokolls

Inhaltsverzeichnis 1. Einführung in Binlog 2. Bin...

Upgrade der Docker-Version von MySQL 5.7 auf MySQL 8.0.13, Datenmigration

Inhaltsverzeichnis 1. Sichern Sie die alten MySQL...

Die Fallstricke bei der Bereitstellung von Angular-Projekten in Nginx

Wenn man online nach Methoden sucht, um Angular -...

Was ist eine HTML-Datei? So öffnen Sie eine HTML-Datei

HTML steht für Hypertext Markup Language. Heutzut...

Detailliertes Tutorial zum Bereitstellen von Apollo mit Docker

1. Einleitung Ich werde hier nicht näher auf Apol...

Grundlegende Hinweise zu HTML (empfohlen)

1. Grundstruktur der Webseite: XML/HTML-CodeInhal...

Detaillierte Erläuterung der Verwendung des MySQL-Auswahl-Cache-Mechanismus

Der MySQL-Abfragecache ist standardmäßig aktivier...

So stellen Sie Ihre erste Anwendung mit Docker bereit

Im vorherigen Artikel haben Sie Docker Desktop in...

So legen Sie einen Alias ​​für einen benutzerdefinierten Pfad in Vue fest

So konfigurieren Sie benutzerdefinierte Pfadalias...

Vue 2.0 Grundlagen im Detail

Inhaltsverzeichnis 1. Funktionen 2. Beispiele 3. ...

Lösungen zur Verarbeitung und Reparatur historischer Linux-Images

Der ECS-Cloud-Server, der mit dem historischen Li...

Zwei Möglichkeiten zum Starten des Linux-Bootdienstes

Inhaltsverzeichnis rc.local-Methode chkconfig-Met...

Beispielcode zum Konvertieren von Videos mit der ffmpeg-Befehlszeile

Bevor Sie mit dem Haupttext dieses Artikels begin...