Maison > interface Web > Questions et réponses frontales > Comment vue demande-t-il plusieurs adresses de serveur ?

Comment vue demande-t-il plusieurs adresses de serveur ?

PHPz
Libérer: 2023-04-17 10:19:46
original
2213 Les gens l'ont consulté

Avant-propos

Dans le développement front-end, lorsque nous utilisons le framework Vue, les requêtes Ajax sont souvent impliquées. Habituellement, les interfaces que nous devons demander sont fournies par le même serveur. Mais dans certains scénarios, nous devons demander plusieurs adresses de serveur différentes. Par exemple, lors du développement d'une application hybride, nous devons demander plusieurs serveurs différents pour obtenir des données. Cet article explique comment demander plusieurs adresses de serveur dans Vue.

Option 1 : Utiliser axios

axios est une bibliothèque de requêtes HTTP basée sur Promise qui peut être utilisée dans les navigateurs et node.js. La bibliothèque ajax officiellement recommandée pour Vue.js est axios.

Nous pouvons installer axios via npm dans le projet Vue :

npm install axios --save
Copier après la connexion

Dans une utilisation spécifique, nous pouvons changer la configuration de la requête par défaut en modifiant l'attribut defaults d'axios. Ici, nous pouvons changer l'adresse par défaut de la requête en modifiant la baseURL de l'attribut defaults. Comme le montre le code suivant :

//创建axios实例
let instance = axios.create({
  baseURL: 'http://localhost:8080'
})

//第一个接口请求
instance.get('/api/employee')
  .then(function(response) {
    console.log(response.data)
  })
  .catch(function(error) {
    console.log(error)
  })

//第二个接口请求
instance.get('/api/company')
  .then(function(response) {
    console.log(response.data)
  })
  .catch(function(error) {
    console.log(error)
  })
Copier après la connexion

Dans le code ci-dessus, nous avons créé une instance axios et défini l'adresse de base sur http://localhost:8080 via l'attribut par défaut, puis demandé /api/employee et /api/company respectivement Deux interfaces.

Cependant, cette méthode pose quelques problèmes. Si nous demandons plus d'adresses de serveur, cela peut entraîner une redondance du code. De plus, si nous avons besoin que l'adresse demandée soit déterminée au moment de l'exécution, cette méthode ne peut pas être utilisée.

Option 2 : Utiliser async/await

En utilisant async/await, nous pouvons demander plusieurs adresses de serveur différentes de manière plus concise. Ce qui suit est un exemple de code utilisant async/await :

async function loadData() {
  try {
    let employee = await axios.get('http://localhost:8080/api/employee')
    console.log(employee.data)

    let company = await axios.get('http://localhost:8081/api/company')
    console.log(company.data)
  } catch (error) {
    console.log(error)
  }
}

loadData()
Copier après la connexion

Grâce à async/await, nous pouvons demander plusieurs adresses de serveur de manière très concise dans le code. Cependant, cette approche pose également certains problèmes. Par exemple, si un grand nombre d’adresses demandées sont utilisées, l’utilisation de async/wait peut ralentir considérablement le processus de demande.

Option 3 : Utilisez Promise.all

Nous pouvons également utiliser la méthode native Promise.all de JavaScript pour demander plusieurs adresses de serveur. Promise.all accepte un tableau d'objets Promise comme paramètres, puis attend que tous les objets Promise soient résolus avant de les renvoyer uniformément.

Promise.all([
  axios.get('http://localhost:8080/api/employee'), 
  axios.get('http://localhost:8081/api/company')
])
.then(function(result) {
  console.log(result[0].data)
  console.log(result[1].data)
})
.catch(function(error) {
  console.log(error)
});
Copier après la connexion

Le code ci-dessus demandera les deux adresses 'http://localhost:8080/api/employee' et 'http://localhost:8081/api/company' en même temps, et affichera une fois que les deux demandes auront été renvoyées avec succès. leurs résultats.

Résumé

Vous trouverez ci-dessus trois façons de demander plusieurs adresses de serveur dans Vue. Chaque méthode a ses avantages et ses inconvénients, et nous pouvons choisir la méthode qui nous convient le mieux en fonction de la situation spécifique. Lors du développement, nous devons utiliser la technologie de manière flexible en fonction des besoins réels afin de fournir aux utilisateurs d'excellents produits et services.

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!

source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal