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

Lösen Sie das Problem, dass Docker Elasticsearch7.x startet und einen Fehler meldet

Verwenden des Docker-Befehls „run“ docker run -d ...

Anzeigen und Analysieren des MySQL-Ausführungsstatus

Wenn Sie den Eindruck haben, dass ein Problem mit...

Detaillierte Beschreibung allgemeiner Ereignisse und Methoden von HTML-Text

Veranstaltungsbeschreibung onactivate: Wird ausgel...

Auszeichnungssprachen – Was lernen, nachdem man HTML gelernt hat?

Klicken Sie hier, um zum Abschnitt „HTML-Tutorial“...

Ein Beispiel für die Berechnungsfunktion calc in CSS im Website-Layout

calc ist eine Funktion in CSS, die zum Berechnen ...

Gestaltung von Popup-Fenstern und schwebenden Ebenen im Webdesign

Im Zuge des schrittweisen Übergangs von herkömmli...

Detaillierte Erklärung zum Festlegen des Kontextpfads in der Webanwendung

URL: http://hostname.com/contextPath/servletPath/...

Detaillierte Erklärung zum Anpassen des Linux-Befehlsverlaufs

Der Befehl „Bash History“ im Linux-System hilft d...

Erklärung des Konzepts und der Verwendung von Like in MySQL

Like bedeutet auf Chinesisch „wie“, aber wenn es ...