Maison interface Web js tutoriel Utilisation d'Axios Element pour implémenter la méthode de chargement de requête globale

Utilisation d'Axios Element pour implémenter la méthode de chargement de requête globale

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

Cet article présente principalement la méthode d'utilisation d'Axios Element pour implémenter le chargement global des requêtes. Maintenant, je le partage avec vous et le donne comme référence.

Contexte

Les exigences commerciales sont les suivantes : chaque fois qu'une requête est envoyée au backend, un chargement en plein écran est déclenché et plusieurs requêtes sont fusionnées en une seule. chargement.

Vue, axios, element, etc. sont actuellement utilisés dans le projet, donc l'article parle principalement de la façon d'utiliser axios et element pour implémenter cette fonction.

L'effet est le suivant :

Analyse

Tout d'abord, le chargement démarre lorsque la requête démarre, puis termine le chargement après le retour de la demande. Le but est d’intercepter les demandes et les réponses.

Ensuite, plusieurs requêtes sont fusionnées en un seul chargement.

Enfin, appelez le composant de chargement de l'élément.

Interception des requêtes et des réponses

L'utilisation de base d'axios ne sera pas décrite en détail. L'auteur utilise axios dans le projet en créant des instances.

// 创建axios实例
const $ = axios.create({
 baseURL: `${URL_PREFIX}`,
 timeout: 15000
})
Copier après la connexion

Ensuite, encapsulez la demande de publication (prendre la publication comme exemple)

export default {
 post: (url, data, config = { showLoading: true }) => $.post(url, data, config)
}
Copier après la connexion

axios fournit une interface pour l'interception des requêtes et l'interception des réponses. Chaque requête appellera la méthode showFullScreenLoading, et chaque réponse appellera la méthode tryHideFullScreenLoading()

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

// 响应拦截器
$.interceptors.response.use((response) => {
 tryHideFullScreenLoading()
 return response
}, (error) => {
 return Promise.reject(error)
})
Copier après la connexion

<🎜. >

Ensuite, ce que fait showFullScreenLoading tryHideFullScreenLoading() est de fusionner les requêtes en même temps. Déclarez une variable needLoadingRequestCount et appelez la méthode showFullScreenLoading needLoadingRequestCount + 1 à chaque fois. Appelez la méthode tryHideFullScreenLoading(), needLoadingRequestCount - 1. Lorsque needLoadingRequestCount est égal à 0, le chargement se termine.

let needLoadingRequestCount = 0

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

export function tryHideFullScreenLoading() {
 if (needLoadingRequestCount <= 0) return
 needLoadingRequestCount--
 if (needLoadingRequestCount === 0) {
  endLoading()
 }
}
Copier après la connexion

startLoading() et endLoading() doivent appeler la méthode de chargement de l'élément.

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()
}
Copier après la connexion

À ce stade, les fonctions de base ont été implémentées. Chaque fois qu'une demande de publication est envoyée, un chargement en plein écran sera affiché. Plusieurs requêtes simultanées sont combinées en un seul chargement, et le chargement se termine une fois que toutes les réponses ont été renvoyées.

Amélioration de la fonction

En fait, la fonction actuelle est encore un peu pire. Si une certaine requête ne nécessite pas de chargement, ajoutez simplement le paramètre showLoading: false lors de l'envoi de la requête. Lors de l'interception de la demande et de l'interception de la réponse, déterminez si la demande nécessite un chargement. Si un chargement est requis, appelez la méthode showFullScreenLoading().

Lors de l'encapsulation de la demande de publication, l'objet de configuration a été ajouté au troisième paramètre. la configuration inclut le showloading. Traitez-les ensuite séparément dans l’intercepteur.

// 请求拦截器
$.interceptors.request.use((config) => {
 if (config.showLoading) {
  showFullScreenLoading()
 }
 return config
})

// 响应拦截器
$.interceptors.response.use((response) => {
 if (response.config.showLoading) {
  tryHideFullScreenLoading()
 }
 return response
})
Copier après la connexion

Lorsque nous appelons axios, nous mettons config dans le troisième paramètre, et axios mettra directement showloading dans le paramètre de rappel de l'intercepteur de requête, peut être utilisé directement. Il existe une clé de configuration dans la réponse du paramètre de rappel dans l'intercepteur de réponse. Cette configuration est la même que la configuration des paramètres de rappel de l'intercepteur de requêtes.


J'ai compilé ce qui précède pour vous, j'espère que cela vous sera utile à l'avenir.

Articles connexes :

Explication détaillée de l'introduction mondiale par Vue de la solution de traitement bass.scss

JS construit un arbre binaire pour supprimer les tableaux numériques Explication détaillée de l'accentuation et de l'optimisation

Explication détaillée de l'insertion d'arbre rouge-noir et exemples de méthodes d'implémentation Javascript

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Que dois-je faire si « Erreur non interceptée (promise) : échec de la demande avec le code d'état 500 » se produit lors de l'utilisation d'axios dans une application Vue ? Que dois-je faire si « Erreur non interceptée (promise) : échec de la demande avec le code d'état 500 » se produit lors de l'utilisation d'axios dans une application Vue ? Jun 24, 2023 pm 05:33 PM

Il est très courant d'utiliser axios dans les applications Vue. axios est un client HTTP basé sur Promise qui peut être utilisé dans les navigateurs et Node.js. Pendant le processus de développement, le message d'erreur « Uncaught(inpromise)Error : Requestfailedwithstatuscode500 » apparaît parfois pour les développeurs, ce message d'erreur peut être difficile à comprendre et à résoudre. Cet article explorera ceci

Choix de requête de données dans Vue : Axios ou Fetch ? Choix de requête de données dans Vue : Axios ou Fetch ? Jul 17, 2023 pm 06:30 PM

Choix de requête de données dans Vue : AxiosorFetch ? Dans le développement de Vue, la gestion des demandes de données est une tâche très courante. Choisir quel outil utiliser pour les demandes de données est une question à considérer. Dans Vue, les deux outils les plus courants sont Axios et Fetch. Cet article comparera les avantages et les inconvénients des deux outils et donnera un exemple de code pour vous aider à faire votre choix. Axios est un client HTTP basé sur Promise qui fonctionne dans les navigateurs et Node.

Comment modifier element.style Comment modifier element.style Nov 24, 2023 am 11:15 AM

Méthodes permettant à element.style de modifier les éléments : 1. Modifier la couleur d'arrière-plan de l'élément ; 2. Modifier la taille de la police de l'élément ; 3. Modifier le style de bordure de l'élément ; . Modifier l'alignement horizontal de l'élément. Introduction détaillée : 1. Modifiez la couleur d'arrière-plan de l'élément, la syntaxe est "document.getElementById("myElement").style.backgroundColor = "red";" 2. Modifiez la taille de la police de l'élément, etc.

Que dois-je faire si « TypeError : Failed to fetch » se produit lors de l'utilisation d'axios dans une application Vue ? Que dois-je faire si « TypeError : Failed to fetch » se produit lors de l'utilisation d'axios dans une application Vue ? Jun 24, 2023 pm 11:03 PM

Récemment, lors du développement d'applications Vue, j'ai rencontré un problème courant : le message d'erreur « TypeError : Failedtofetch ». Ce problème se produit lors de l'utilisation d'axios pour effectuer des requêtes HTTP et que le serveur backend ne répond pas correctement à la requête. Ce message d'erreur indique généralement que la demande ne peut pas atteindre le serveur, probablement pour des raisons de réseau ou parce que le serveur ne répond pas. Que devons-nous faire après l'apparition de ce message d'erreur ? Voici quelques solutions de contournement : Vérifiez votre connexion réseau en raison de

Comment résoudre le problème « Erreur : erreur réseau » lors de l'utilisation d'axios dans l'application Vue ? Comment résoudre le problème « Erreur : erreur réseau » lors de l'utilisation d'axios dans l'application Vue ? Jun 25, 2023 am 08:27 AM

Comment résoudre le problème « Erreur : NetworkError » lors de l'utilisation d'axios dans l'application Vue ? Dans le développement d'applications Vue, nous utilisons souvent axios pour faire des requêtes API ou obtenir des données, mais parfois nous rencontrons « Erreur : NetworkError » dans les requêtes axios. Que devons-nous faire dans ce cas ? Tout d'abord, vous devez comprendre ce que signifie « Erreur : NetworkError ». Cela signifie généralement la connexion réseau.

Utiliser efficacement Vue et Axios pour mettre en œuvre le traitement par lots des données frontales Utiliser efficacement Vue et Axios pour mettre en œuvre le traitement par lots des données frontales Jul 17, 2023 pm 10:43 PM

Utilisez efficacement Vue et Axios pour implémenter le traitement par lots des données frontales. Dans le développement front-end, le traitement des données est une tâche courante. Lorsque nous devons traiter une grande quantité de données, le traitement des données deviendra très lourd et inefficace s’il n’existe pas de méthode efficace. Vue est un excellent framework frontal et Axios est une bibliothèque de requêtes réseau populaire. Ils peuvent travailler ensemble pour implémenter le traitement par lots des données frontales. Cet article présentera en détail comment utiliser efficacement Vue et Axios pour le traitement par lots de données et fournira des exemples de code pertinents.

Comment utiliser vue3+ts+axios+pinia pour obtenir un rafraîchissement insensé Comment utiliser vue3+ts+axios+pinia pour obtenir un rafraîchissement insensé May 25, 2023 pm 03:37 PM

vue3+ts+axios+pinia réalise un rafraîchissement insensé 1. Téléchargez d'abord aiXos et pinianpmipinia dans le projet--savenpminstallaxios--save2 Encapsuler la requête axios-----Télécharger js-cookienpmiJS-cookie-s//Introduire aixosimporttype{AxiosRequestConfig , AxiosResponse}de"axios";importaxiosfrom'axios';import{ElMess

Que dois-je faire si « Erreur : délai d'attente de xxxms dépassé » se produit lors de l'utilisation d'axios dans une application Vue ? Que dois-je faire si « Erreur : délai d'attente de xxxms dépassé » se produit lors de l'utilisation d'axios dans une application Vue ? Jun 24, 2023 pm 03:27 PM

Que dois-je faire si « Erreur : timeoutofxxxmsexceeded » se produit lors de l'utilisation d'axios dans une application Vue ? Avec le développement rapide d'Internet, la technologie front-end est constamment mise à jour et itérée. En tant qu'excellent framework front-end, Vue a été bien accueillie par tout le monde ces dernières années. Dans les applications Vue, nous devons souvent utiliser axios pour effectuer des requêtes réseau, mais parfois l'erreur « Erreur : timeoutofxxxmsexceeded » se produit.

See all articles