Wie vue3 das Problem der Axios-Anfragekapselung löst
Vue3 tatsächliches Axios-Anforderungskapselungsproblem
1 Erstellen Sie einen http-Ordner im src-Verzeichnis und erstellen Sie index.js, request.js bzw. api.js im http-Ordner
2. Verwendet werden alle von api.js definierten Schnittstellen, der Code lautet wie folgt:
export * from './api';
4 Der api.js-Code lautet wie folgt:
import axios from 'axios'; import buildURL from 'axios/lib/helpers/buildURL'; import { merge } from 'axios/lib/utils'; //判断指定参数是否是一个纯粹的对象,所谓"纯粹的对象",就是该对象是通过"{}"或"new Object"创建的 function isPlainObject (val) { return val && val.constructor.name === 'Object' } //请求之前进行拦截,可做的操作:1、添加loading的加载;2、添加请求头;3、判断表单提交还是json提交 let requestInterceptors = [ config => { //添加loading的加载 //添加请求头 config.headers.authorization = sessionStorage.getItem('Token'); //判断表单提交还是json提交 if (config.emulateJSON && isPlainObject(config.data)) { config.data = buildURL('', config.data).substr(1); } return config; } ] //请求响应之后进行拦截,可做操作:1、取消loading的加载;2、对返回状态进行判断:如请求错误、请求超时、获取数据失败、暂无数据等等 let responseInterceptors = [ res => { //取消loading加载 //对返回状态进行判断:如请求错误、请求超时、获取数据失败等等 //返回结果 return Promise.resolve(res); }, err => { //取消loading加载 //对返回状态进行判断:如请求错误、请求超时、获取数据失败等等 //返回结果 return Promise.reject(err); } ] //组装请求 let serviceCreate = config => { let service = axios.create(merge({}, config)); service.interceptors.request.use(...requestInterceptors); service.interceptors.response.use(...responseInterceptors); return service } serviceCreate(); export { serviceCreate, merge };
5 die Seite
import { serviceCreate, merge } from '@/http/request'; //这种方式可以采用单个项目的接口,也可以使用多个项目的接口,看自己的项目情况而定 let http0 = serviceCreate({ baseURL: '/project1/api1', timeout: 15000,//请求超时 emulateJSON: true,//默认表单提交 }) let http1 = serviceCreate({ baseURL: '/project2/api2', timeout: 15000,//请求超时 emulateJSON: true,//默认表单提交 }) //get请求示例 export function getData(params, config) { return http0.get('/project/list', merge(config, { params })); } //delete请求示例 export function deleteData(params, config) { return http0.delete('/project/list', merge(config,{ params })); } //post请求示例(表单提交) export function postDataFrom(params, config) { return http0.post('/project/list', params, config); } //post请求示例(json提交) export function postDataJson(params, config) { return http0.post('/project/list', params, merge(config, { emulateJSON: false })); } //put请求示例(表单提交) export function putDataFrom(params, config) { return http0.put('/project/list', params, config); } //put请求示例(json提交) export function putDataJson(params, config) { return http0.put('/project/list', params, merge(config, { emulateJSON: false })); }
vue3 Axios Simple Packaging Tutorial
Erstellen Sie zunächst einen neuen Utils-Ordner im Stammverzeichnis und erstellen Sie unten zwei neue Dateien, request.js und html.js
requests.js wird verwendet, um Axios einzuführen und festzulegen Stammdomänenname und einige Standardeinstellungen, Interceptors usw.
import { getData, deleteData, postDataFrom, postDataJson, putDataFrom, putDataJson } from "@/http"; getData({ name: "我是参数" }).then(res => { console.log("返回数据", res) }) deleteData({ name: "我是参数" }).then(res => { console.log("返回数据", res) }) postDataFrom({ name: "我是参数" }).then(res => { console.log("返回数据", res) }) postDataJson({ name: "我是参数" }).then(res => { console.log("返回数据", res) }) putDataFrom({ name: "我是参数" }).then(res => { console.log("返回数据", res) }) putDataJson ({ name: "我是参数" }).then(res => { console.log("返回数据", res) })
Stellen Sie nach dem Schreiben das erstellte Instanzobjekt bereit und führen Sie es in html.js ein.
Die Funktion der Datei html.js besteht darin, das Instanzobjekt von Anforderungen aufzurufen und alle Zugriffe in dieser Datei (API) zu speichern, die Sie einführen können es nach Bedarf, wenn Sie es verwenden.
import axios from "axios"; const service = axios.create({ baseURL: 'http://localhost:3000', timeout: 10000, }) // 请求拦截器 service.interceptors.request.use(config=>{ return config },err=>{ return Promise.reject(err) //返回错误 }) // 响应拦截器 service.interceptors.response.use(res=>{ return res },err=>{ return Promise.reject(err) //返回错误 }) export default service
Eingeführte Dateien:
import request from "./requests"; export const GetPosts = () => request.get('posts/1') export const GetsearchData = (params) => request.get('/list',{params}) export const PostPosts = (params) => request.post('posts',params)
Das obige ist der detaillierte Inhalt vonWie vue3 das Problem der Axios-Anfragekapselung löst. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



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

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

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.

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. 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.

Der letzte Effekt besteht darin, die VueCropper-Komponente „garnaddvue-cropper@next“ zu installieren. Wenn es sich um Vue3 handelt oder Sie andere Methoden als Referenz verwenden möchten, besuchen Sie bitte die offizielle npm-Adresse. Es ist auch sehr einfach, es in einer Komponente zu referenzieren und zu verwenden. Sie müssen nur die entsprechende Komponente und ihre Stildatei einführen. Ich verweise hier nicht global, sondern nur auf import{userInfoByRequest}from'../js/api ' in meiner Komponentendatei. import{VueCropper}from'vue-cropper&

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.

Verwenden von Vue zum Erstellen benutzerdefinierter Elemente. WebComponents ist ein Sammelname für eine Reihe webnativer APIs, die es Entwicklern ermöglichen, wiederverwendbare benutzerdefinierte Elemente (Customelements) zu erstellen. Der Hauptvorteil von benutzerdefinierten Elementen besteht darin, dass sie mit jedem Framework verwendet werden können, auch ohne Framework. Sie sind ideal, wenn Sie Endbenutzer ansprechen, die möglicherweise einen anderen Front-End-Technologie-Stack verwenden, oder wenn Sie die endgültige Anwendung von den Implementierungsdetails der verwendeten Komponenten entkoppeln möchten. Vue und WebComponents sind komplementäre Technologien und Vue bietet hervorragende Unterstützung für die Verwendung und Erstellung benutzerdefinierter Elemente. Sie können benutzerdefinierte Elemente in bestehende Vue-Anwendungen integrieren oder Vue zum Erstellen verwenden
