So kapseln Sie Axios in ein Vue-Projekt (einheitliche Verwaltung von HTTP-Anfragen)

So kapseln Sie Axios in ein Vue-Projekt (einheitliche Verwaltung von HTTP-Anfragen)

1. Voraussetzungen

Bei der Entwicklung von Front-End-Projekten mit dem Vue.js-Framework werden häufig Ajax-Anfragen an die Serverschnittstelle gesendet. Während des Entwicklungsprozesses muss Axios weiter gekapselt werden, um seine Verwendung im Projekt zu erleichtern.

2. Vue-Projektstruktur

Erstellen Sie lokal ein Vue-Projekt mit der folgenden Verzeichnisstruktur:

- öffentliche statische Ressourcendateien
-Quelle
|- statisches Ressourcenverzeichnis von Assets
|- Komponenten öffentliches Komponentenverzeichnis
|- http Axios-Paketverzeichnis
|- Router-Routing-Verwaltungsverzeichnis
|- Verzeichnis zur Statusverwaltung speichern
|- Ansichten zeigen Komponentenverzeichnis an
|- App.vue-Stammkomponente
|- main.js-Eintragsdatei
- package.json npm-Konfigurationsdatei

Erstellen Sie im Vue-Projekt ein http-Verzeichnis als Verwaltungsverzeichnis von axios. Im http-Verzeichnis befinden sich zwei Dateien, nämlich

  • /http/index.js-Datei, die die Axios-Methode kapselt
  • /http/api.js Einheitliche Verwaltungsschnittstellendatei

3. Codebeispiele

Der Code der Datei /http/api.js lautet wie folgt:

Standard exportieren {
    'users_add': '/Benutzer/Hinzufügen',
    'users_find': '/Benutzer/finden',
    'users_update': '/Benutzer/Update',
    'users_delete': '/Benutzer/löschen'
}

Der Code der Datei /http/index.js lautet wie folgt:

Axios von „Axios“ importieren
API aus „./api“ importieren

//Erstellen Sie ein Axios-Instanzobjekt let instance = axios.create({
    baseURL: 'http://localhost:3000', //Serveradressen-Timeout: 5000 //Standard-Timeout-Dauer})

//Interceptor anfordern instance.interceptors.request.use(config=>{
    //Schreiben Sie hier den Code zum Abfangen von Anforderungen, der im Allgemeinen zum Öffnen des Ladefensters verwendet wird console.log('Angefordert ...')
    Konfiguration zurückgeben
},err=>{
    console.error('Anforderung fehlgeschlagen',err)
})

//Antwort-Interceptor-Instanz.interceptors.response.use(res=>{
    //Verarbeite hier die Antwortdaten console.log('Anfrage erfolgreich!')
    return res //Das zurückgegebene Objekt wird an das Antwortobjekt der Anforderungsmethode übergeben},err=>{
    // Fehlerbehandlung bei der Antwort console.log('Antwort fehlgeschlagen!', err)
    // Promise.reject(err) zurückgeben;
})

//Kapselt die Axios-Anforderungsmethode, Parameter ist ein Konfigurationsobjekt //Option = {Methode,URL,Parameter} Methode ist Anforderungsmethode, URL ist Anforderungsschnittstelle, Parameter ist Anforderungsparameter asynchrone Funktion http(Option = {}) {
    let result = null
    wenn(option.method === 'holen' || option.method === 'löschen'){
     //Get- und Delete-Anfragen verarbeiten, warte auf Instanz [Option.Methode](
                api[option.url],
                {params: option.params}
          ).dann(res=>{
            Ergebnis = res.data
        }).catch(err=>{
            Ergebnis = Fehler
        })
    }sonst wenn(option.method === 'post' || option.method === 'put'){
     //Post- und Put-Anfragen verarbeiten, auf Instanz warten [Option.Methode](
                api[option.url],
                option.params
            ).dann(res=>{
            Ergebnis = res.data
        }).catch(err=>{
            Ergebnis = Fehler
        })
    }

    Ergebnis zurückgeben
}

Standard-HTTP exportieren

Importieren Sie die gekapselte Datei /http/index.js in die Eintragsdatei main.js. Der Beispielcode lautet wie folgt:

Vue von „vue“ importieren
App aus „./App.vue“ importieren
Router aus „./router“ importieren
Store aus „./store“ importieren
importiere http von './http'

Vue.config.productionTip = falsch
Vue.prototype.$http = http

Vue.use(Elementui)

neuer Vue({
  Router,
  speichern,
  rendern: h => h(App)
}).$mount('#app')

Testen Sie die Axios-Anforderung in der App.vue-Stammkomponente. Der Beispielcode lautet wie folgt:

<Vorlage>
  <div>
    <button @click="getDate">Anfrage senden</el-button>
  </div>
</Vorlage>

<Skript>
Standard exportieren {
  Methoden: {
    getDate(){
      dies.$http({
        Methode: 'get',
        URL: „Benutzer_finden“
      }).dann(res=>{
        Konsole.log(res)
      })

    }
  }
}
</Skript>

Hier muss eine Schnittstelle http://localhost:3000/users/find vorhanden sein, sonst schlägt die Anfrage fehl!

4. Effektdemonstration

Starten Sie das Vue-Projekt und rufen Sie im Browser die Adresse des Vue-Projekts auf. Meine Adresse lautet http://localhost:8080. Klicken Sie auf die Schaltfläche, um die Anfrage zu senden. Das Ergebnis ist in der folgenden Abbildung dargestellt.

An diesem Punkt wurde eine einfache Axios-Kapselung im Vue-Projekt abgeschlossen. Sie können Axios auch entsprechend Ihren tatsächlichen Anforderungen kapseln. Dieser Artikel dient nur als Referenz.

Dies ist das Ende dieses Artikels über die Kapselung von Axios (einheitliche Verwaltung von HTTP-Anfragen) in Vue-Projekten. Weitere relevante Inhalte zur Vue-Kapselung von Axios-Verwaltungs-HTTP-Anfragen finden Sie in früheren Artikeln auf 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 kapseln Sie Axios-Anfragen mit Vue
  • Beispielcode einer Vue-Anwendung basierend auf der Axios-Anforderungskapselung
  • Vue3+TypeScript kapselt Axios und implementiert Anforderungsaufrufe
  • Vue+axios kapselt Anfragen, um Front- und Backend zu trennen
  • Schritte für Vue zum Kapseln von Axios-Anfragen und -Interceptors
  • So verwenden Sie Axios zum Kapseln von HTTP-Anfragen in Vue-Projekten
  • Vue Axios wiederholtes Klicken bricht die letzte Anforderungskapselungsmethode ab
  • Kapselungsanforderung von Axios im Vue-Projekt

<<:  Detaillierte Erklärung der InnoDB-Speicherdateien in MySQL

>>:  Detaillierte Erläuterung der Dateisystemformate der EXT-Serie in Linux

Artikel empfehlen

Implementierung der Docker-Container-Verbindung und -Kommunikation

Die Portzuordnung ist nicht die einzige Möglichke...

So legen Sie die Umgebungsvariable PATH im Linux-System fest (3 Methoden)

1. In Windows-Systemen erfordern viele Softwarein...

Interpretation von syslogd- und syslog.conf-Dateien unter Linux

1: Einführung in syslog.conf Für verschiedene Uni...

Beispiele für ES6-Schleifen und iterierbare Objekte

Dieser Artikel untersucht die ES6-for...of-Schlei...

Neue Blockbereichsfunktion von JavaScript ES

Inhaltsverzeichnis 1. Was ist Blockbereich? 2. Wa...

So ändern Sie die Ali-Quelle in Ubuntu 20.04

Beachten Sie, dass dieser Artikel Ihnen nicht ein...

Mycli ist ein unverzichtbares Tool für MySQL-Befehlszeilen-Enthusiasten

mycli MyCLI ist eine Befehlszeilenschnittstelle f...

Lassen Sie uns über Parameter in MySQL sprechen

Vorwort: In einigen früheren Artikeln haben wir h...

Beispielcode zur Implementierung eines 3D-Bucheffekts mit CSS

Schauen wir uns zunächst ohne Umschweife die Rend...

So legen Sie in Linux eine feste IP fest (getestet und effektiv)

Öffnen Sie zunächst die virtuelle Maschine Öffnen...

HTML+CSS zum Erstellen einer Schaltfläche im Cyberpunk-Stil

Erster Blick auf die Wirkung: Vorwort: Auf diese ...

Detailliertes Installationstutorial für die MySQL-Zip-Archivversion (5.7.19)

1. Laden Sie die Zip-Archivversion von der offizi...

Zusammenfassung der Möglichkeiten zur Implementierung von Single Sign-On in Vue

Das Projekt wurde vor Kurzem ausgesetzt und die U...