Heim Web-Frontend js-Tutorial Verwendung von Axios Element zur Implementierung einer globalen Methode zum Laden von Anforderungen

Verwendung von Axios Element zur Implementierung einer globalen Methode zum Laden von Anforderungen

May 30, 2018 am 10:46 AM
axios element 请求

In diesem Artikel wird hauptsächlich die Methode zur Verwendung von Axios Element zum Implementieren des globalen Anforderungsladens vorgestellt. Jetzt teile ich es mit Ihnen und gebe es als Referenz.

Hintergrund

Die Geschäftsanforderung sieht so aus: Immer wenn eine Anfrage an das Backend gesendet wird, wird ein Vollbild-Ladevorgang ausgelöst und mehrere Anfragen werden zu einer zusammengeführt Laden.

Vue, Axios, Element usw. werden derzeit im Projekt verwendet, daher geht es in dem Artikel hauptsächlich um die Verwendung von Axios und Element zur Implementierung dieser Funktion.

Der Effekt ist wie folgt:

Analyse

Zuerst beginnt das Laden, wenn die Anfrage gestellt wird startet und beendet den Ladevorgang, nachdem die Anfrage zurückgegeben wurde. Es geht darum, Anfragen und Antworten abzufangen.

Dann werden mehrere Anfragen zu einem Ladevorgang zusammengeführt.

Zum Schluss rufen Sie die Ladekomponente des Elements auf.

Abfangen von Anfragen und Antworten

Die grundlegende Verwendung von Axios wird nicht im Detail beschrieben. Der Autor verwendet Axios im Projekt, indem er Instanzen erstellt.

// 创建axios实例
const $ = axios.create({
 baseURL: `${URL_PREFIX}`,
 timeout: 15000
})
Nach dem Login kopieren

Dann kapseln Sie die Post-Anfrage (nehmen Sie den Beitrag als Beispiel)

export default {
 post: (url, data, config = { showLoading: true }) => $.post(url, data, config)
}
Nach dem Login kopieren

axios stellt eine Schnittstelle zum Abfangen von Anfragen und Antworten bereit. Die Methode showFullScreenLoading wird für jede Anfrage aufgerufen, und die Methode tryHideFullScreenLoading() wird für jede Antwort aufgerufen. Deklarieren Sie eine Variable needLoadingRequestCount und rufen Sie jedes Mal die showFullScreenLoading-Methode needLoadingRequestCount + 1 auf. Rufen Sie die Methode tryHideFullScreenLoading() auf, needLoadingRequestCount - 1. Wenn needLoadingRequestCount 0 ist, wird der Ladevorgang beendet.

// 请求拦截器
$.interceptors.request.use((config) => {
 showFullScreenLoading()
 return config
}, (error) => {
 return Promise.reject(error)
})

// 响应拦截器
$.interceptors.response.use((response) => {
 tryHideFullScreenLoading()
 return response
}, (error) => {
 return Promise.reject(error)
})
Nach dem Login kopieren

startLoading() und endLoading() dienen zum Aufrufen der Lademethode des Elements.

let needLoadingRequestCount = 0

export function showFullScreenLoading() {
 if (needLoadingRequestCount === 0) {
  startLoading()
 }
 needLoadingRequestCount++
}

export function tryHideFullScreenLoading() {
 if (needLoadingRequestCount <= 0) return
 needLoadingRequestCount--
 if (needLoadingRequestCount === 0) {
  endLoading()
 }
}
Nach dem Login kopieren

Zu diesem Zeitpunkt sind die Grundfunktionen implementiert. Jedes Mal, wenn eine Post-Anfrage gesendet wird, wird ein Vollbild-Ladevorgang angezeigt. Mehrere Anfragen gleichzeitig werden zu einem Ladevorgang zusammengefasst und der Ladevorgang endet, nachdem alle Antworten zurückgegeben wurden.

Funktionsverbesserung

Eigentlich ist die aktuelle Funktion noch etwas schlechter. Wenn eine bestimmte Anfrage kein Laden erfordert, fügen Sie beim Senden der Anfrage einfach den Parameter showLoading: false hinzu. Bestimmen Sie beim Abfangen von Anforderungen und Antworten, ob die Anforderung geladen werden muss. Wenn ein Laden erforderlich ist, rufen Sie die Methode showFullScreenLoading() auf.

Beim Kapseln der Post-Anfrage wurde das Konfigurationsobjekt zum dritten Parameter hinzugefügt. config beinhaltet Showloading. Behandeln Sie sie dann separat im Abfangjäger.

import { Loading } from &#39;element-ui&#39;
let loading
function startLoading() {
 loading = Loading.service({
  lock: true,
  text: &#39;加载中……&#39;,
  background: &#39;rgba(0, 0, 0, 0.7)&#39;
 })
}

function endLoading() {
 loading.close()
}
Nach dem Login kopieren

Wenn wir Axios aufrufen, fügen wir config in den dritten Parameter ein. Axios fügt Showloading direkt in den Callback-Parameter des Request-Interceptors ein . Es gibt einen Konfigurationsschlüssel in der Rückrufparameter-Antwort im Antwort-Interceptor. Diese Konfiguration ist dieselbe wie die Rückrufparameterkonfiguration des Anforderungsinterceptors.

Ich habe das Obige für Sie zusammengestellt und hoffe, dass es Ihnen in Zukunft hilfreich sein wird.

Verwandte Artikel:


Detaillierte Erläuterung der globalen Einführung der bass.scss-Verarbeitungslösung durch Vue

JS erstellt einen Binärbaum zum Entfernen numerischer Arrays Detaillierte Erläuterung der Hervorhebung und Optimierung

Detaillierte Erläuterung des Einfügens von Rot-Schwarz-Bäumen und Beispiele für Javascript-Implementierungsmethoden


Das obige ist der detaillierte Inhalt vonVerwendung von Axios Element zur Implementierung einer globalen Methode zum Laden von Anforderungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was soll ich tun, wenn bei der Verwendung von Axios in einer Vue-Anwendung „Uncaught (in Promise) Error: Request failed with status code 500' auftritt? Was soll ich tun, wenn bei der Verwendung von Axios in einer Vue-Anwendung „Uncaught (in Promise) Error: Request failed with status code 500' auftritt? Jun 24, 2023 pm 05:33 PM

Axios wird häufig in Vue-Anwendungen verwendet. Axios ist ein Promise-basierter HTTP-Client, der in Browsern und Node.js verwendet werden kann. Während des Entwicklungsprozesses erscheint manchmal die Fehlermeldung „Uncaught(inpromise)Error: Requestfailedwithstatuscode500“. Für Entwickler kann diese Fehlermeldung schwer zu verstehen und zu lösen sein. In diesem Artikel wird dies untersucht

So ändern Sie element.style So ändern Sie element.style Nov 24, 2023 am 11:15 AM

Methoden für element.style zum Ändern der Hintergrundfarbe des Elements; 2. Ändern der Schriftgröße des Elements; 4. Ändern des Schriftstils des Elements; . Ändern Sie die horizontale Ausrichtung des Elements. Detaillierte Einführung: 1. Ändern Sie die Hintergrundfarbe des Elements. Die Syntax lautet "document.getElementById("myElement").style.backgroundColor = "red";" 2. Ändern Sie die Schriftgröße des Elements usw.

Auswahl der Datenanforderung in Vue: Axios oder Fetch? Auswahl der Datenanforderung in Vue: Axios oder Fetch? Jul 17, 2023 pm 06:30 PM

Auswahl der Datenanforderung in Vue: AxiosorFetch? In der Vue-Entwicklung ist die Bearbeitung von Datenanfragen eine sehr häufige Aufgabe. Die Wahl des für Datenanfragen zu verwendenden Tools ist eine Frage, die berücksichtigt werden muss. In Vue sind Axios und Fetch die beiden am häufigsten verwendeten Tools. In diesem Artikel werden die Vor- und Nachteile beider Tools verglichen und Beispielcode bereitgestellt, der Ihnen bei der Entscheidungsfindung helfen soll. Axios ist ein Promise-basierter HTTP-Client, der in Browsern und Node funktioniert.

Was soll ich tun, wenn bei der Verwendung von Axios in einer Vue-Anwendung „TypeError: Failed to fetch' auftritt? Was soll ich tun, wenn bei der Verwendung von Axios in einer Vue-Anwendung „TypeError: Failed to fetch' auftritt? Jun 24, 2023 pm 11:03 PM

Kürzlich bin ich bei der Entwicklung von Vue-Anwendungen auf ein häufiges Problem gestoßen: die Fehlermeldung „TypeError: Failedtofetch“. Dieses Problem tritt auf, wenn Axios zum Senden von HTTP-Anfragen verwendet wird und der Backend-Server nicht korrekt auf die Anfrage antwortet. Diese Fehlermeldung weist normalerweise darauf hin, dass die Anfrage den Server nicht erreichen kann, möglicherweise aus Netzwerkgründen oder weil der Server nicht antwortet. Was sollen wir tun, nachdem diese Fehlermeldung erscheint? Hier sind einige Problemumgehungen: Überprüfen Sie Ihre Netzwerkverbindung aufgrund von

Wie kann das Problem „Fehler: Netzwerkfehler' bei der Verwendung von Axios in der Vue-Anwendung gelöst werden? Wie kann das Problem „Fehler: Netzwerkfehler' bei der Verwendung von Axios in der Vue-Anwendung gelöst werden? Jun 25, 2023 am 08:27 AM

Wie kann das Problem „Fehler: NetworkError“ bei der Verwendung von Axios in der Vue-Anwendung gelöst werden? Bei der Entwicklung von Vue-Anwendungen verwenden wir häufig Axios, um API-Anfragen zu stellen oder Daten abzurufen, aber manchmal stoßen wir in Axios-Anfragen auf „Fehler: NetworkError“. Was sollten wir in diesem Fall tun? Zunächst müssen Sie verstehen, was „Fehler:Netzwerkfehler“ bedeutet. Normalerweise bedeutet dies, dass die Netzwerkverbindung unterbrochen ist

Nutzen Sie Vue und Axios effizient, um die Stapelverarbeitung von Front-End-Daten zu implementieren Nutzen Sie Vue und Axios effizient, um die Stapelverarbeitung von Front-End-Daten zu implementieren Jul 17, 2023 pm 10:43 PM

Nutzen Sie Vue und Axios effizient, um die Stapelverarbeitung von Front-End-Daten zu implementieren. In der Front-End-Entwicklung ist die Datenverarbeitung eine häufige Aufgabe. Wenn wir große Datenmengen verarbeiten müssen, wird die Datenverarbeitung sehr umständlich und ineffizient, wenn es keine wirksame Methode gibt. Vue ist ein hervorragendes Front-End-Framework und Axios ist eine beliebte Netzwerkanforderungsbibliothek. Sie können zusammenarbeiten, um eine Stapelverarbeitung von Front-End-Daten zu implementieren. In diesem Artikel wird detailliert beschrieben, wie Vue und Axios effizient für die Stapelverarbeitung von Daten eingesetzt werden können, und es werden relevante Codebeispiele bereitgestellt.

So verwenden Sie vue3+ts+axios+pinia, um eine sinnlose Aktualisierung zu erreichen So verwenden Sie vue3+ts+axios+pinia, um eine sinnlose Aktualisierung zu erreichen May 25, 2023 pm 03:37 PM

vue3+ts+axios+pinia realisiert sinnlose Aktualisierung 1. Laden Sie zuerst aiXos und pinianpmipinia im Projekt herunter--savenpminstallaxios--save2. AxiosResponse}from"axios";importaxiosfrom'axios';import{ElMess

Was soll ich tun, wenn bei der Verwendung von Axios in einer Vue-Anwendung „Fehler: Zeitüberschreitung von xxxms überschritten' auftritt? Was soll ich tun, wenn bei der Verwendung von Axios in einer Vue-Anwendung „Fehler: Zeitüberschreitung von xxxms überschritten' auftritt? Jun 24, 2023 pm 03:27 PM

Was soll ich tun, wenn bei der Verwendung von Axios in einer Vue-Anwendung „Fehler: timeoutofxxxmsexceeded“ auftritt? Mit der rasanten Entwicklung des Internets wird die Front-End-Technologie ständig aktualisiert und iteriert. Als hervorragendes Front-End-Framework wurde Vue in den letzten Jahren von allen begrüßt. In Vue-Anwendungen müssen wir häufig Axios verwenden, um Netzwerkanforderungen zu stellen, aber manchmal tritt der Fehler „Fehler: timeoutofxxxmsexceeded“ auf.

See all articles