VorwortHeutzutage 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’s1. 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) }, ZusammenfassenDies 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:
|
>>: Lösung für MySQLSyntaxErrorException beim Herstellen einer Verbindung zu MySQL über Bitronix
Importieren Sie die aus der Oracle-Datenbank expo...
Vorwort Meine Anforderungen sind Syntaxhervorhebu...
Da eine bestimmte Funktion meines Projekts erford...
Vorwort Bei der Frontend-Entwicklung stoßen wir h...
Vorwort 1. Die in diesem Artikel verwendeten Tool...
MySql-Index Indexvorteile 1. Sie können die Einde...
Implementierungsmethode für die MySQL5.7-Master-S...
Sehen wir uns zunächst verschiedene Möglichkeiten...
Wichtige Erkenntnisse: 1. Beherrschung der CSS3-3...
Das Format des Textbereichs kann beim Speichern in...
SQL-Methode zum Berechnen der Zeitstempeldifferen...
Vorwort: In Vue können Props verwendet werden, um...
Ich habe vor Kurzem eine visuelle Operationsplatt...
1. Schreiben Sie das Dockerfile (1) Klicken Sie m...
Keepalive wird häufig zum Caching in Vue-Projekte...