1. Warum verpacken?Erleichtert das Aufrufen von Codes, die öffentliche Verarbeitung von Anfragen und die personalisierte Anpassung 2. Andere haben schon viel gekapselt, warum nicht einfach modifizieren und verwenden?
3. Persönliche VerpackungsdemoCodestruktur [basierend auf vue] Grundgedanke Speichern Sie alle Anforderungsschnittstellenadressen nach Modulen entsprechend den Dateien, z. B. Anforderung/Modul/Benutzerbenutzerinformationen im Zusammenhang mit dem Modul [Dienst]. 2. Kapselungsmethoden und -klassen. Binden Sie allgemeine Anforderungsmethoden an alle Anforderungen und verarbeiten Sie Pfadparameter an die Anforderungs-URL. generateServer.js Server aus „../util/axiosConfig“ importieren; // Ändern Sie die Grundkonfiguration von Axios und fordern Sie die Konfigurationsfunktion request({ an. URL (URL = URL = URL), Methode = "get", AbfrageParm = {}, Körper = {}, PfadParm = null, Konfiguration = {}, }) { const configAxios = { Verfahren, ...Konfiguration, URL: DealRequestUrl (URL, Pfadparameter), }; Schalter (Methode) { Fall "erhalten": configAxios.params = AbfrageParm; brechen; Standard: //Anforderungsmethoden „PUT“, „POST“ und „PATCH“ configAxios.data = Text; brechen; } console.log('configAxios', configAxios) Server zurückgeben (configAxios); } Funktion dealRequestUrl(url, pathParm) { wenn (!PfadParm) URL zurückgeben; lass dealurl = url; Objekt.Schlüssel(PfadParm).fürJeden((ele) => { dealurl = dealurl.replace(`{${ele}}`, PfadParm[ele]); }); Deal-URL zurückgeben; } Klasse GenerateServer { Konstruktor(URL) { diese.url = URL; } getdata(parm) { console.log('parm', parm) Rückgabeanforderung ({... parm, Methode: "get", URL: diese.URL}); } postdata(parm) { Anfrage zurückgeben({ ...parm, Methode: "post", URL: diese.URL }); } gelöschteDaten(Parameter) { Rückgabeanforderung ({... Parm, Methode: "Löschen", URL: diese.URL}); } } Standard-GenerateServer exportieren; 3. Das Ganze freilegen verwenden importiere { userInfoServer } aus "./request"; . . . // Anfrage senden userInfoServer.getUserName .getdata({ AbfrageParm: { ID: 223, }, }) .then((res) => { Konsole.log("res", res); }); // Anfrage senden userInfoServer.getUserName .postdata({ Körper: { ID: 223, }, }) .then((res) => { Konsole.log("res", res); }); // Senden Sie eine Get-Anfrage mit dem Anfragepfad, der den Parameter userInfoServer.getUserList enthält .getdata({ AbfrageParm: { ID: 223, }, PfadParm: { ID: 567, }, }) .then((res) => { Konsole.log("res", res); }); Zusammenfassen:Die obige Kapselung dient hauptsächlich dazu, die Anforderung detaillierter aufzuteilen, um die Wartung zu erleichtern. Auch während der Entwicklung ist es praktischer. Für neue Schnittstellenanforderungen müssen Sie lediglich die URL-Konfiguration und die Antwortgenerator-Konfiguration im entsprechenden Modul hinzufügen. Anschließend können Sie die Anfrage im Geschäftscode weiterverarbeiten. Die Pfadparameter und Anforderungstextparameter sind gekapselt, sodass Sie sich bei ihrer Verwendung nicht um die entsprechende Konfiguration kümmern müssen. Der obige Code verarbeitet keine Datei-Uploads, ruft keine Anforderungsparameterzeichenfolgen ab usw. Fügen Sie aber einfach die Konfiguration in den entsprechenden Axios hinzu. Leicht zu pflegen. Dies ist das Ende dieses Artikels über die Sekundärverpackung von Axios im Projekt. Weitere relevante Inhalte zur Sekundärverpackung von Axios 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! Git-Code: git Das könnte Sie auch interessieren:
|
<<: Detaillierte Erklärung zur Installation von PHP7 unter Linux
>>: Ausführliche Erklärung des Maximalwerts von int in MySQL
Verwenden des Proxy-Cache von Nginx zum Erstellen...
1. Kompatibilität Wie unten dargestellt: Die Komp...
MySQL-Dirty-Pages Aufgrund des WAL-Mechanismus er...
Suchen Sie die ID des laufenden Containers Docker...
Derjenige, der eine neue Verbindung herstellt, en...
Nach vielen schwierigen Einzelschritt-Debuggings ...
In diesem Artikel wird der spezifische Code von V...
Installation der MySQL-Dekomprimierungsversion un...
Das Entwerfen der Navigation für eine Website ist...
Häufige Anwendungsszenarien Die Schnittstellen ak...
Vor Kurzem mussten wir eine geplante Migration de...
RGBA ist eine CSS-Farbe, mit der Farbwert und Tra...
In diesem Artikelbeispiel wird der spezifische JS...
In diesem Blog besprechen wir zehn Leistungseinst...
1. Implementierungsprinzip des Scrollens Das Scro...