Blog Alphorm Logo de blog informatique spécialisé en technologie et solutions IT
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
En cours de lecture : Intégrer Bootstrap et Axios dans Vue.js
Agrandisseur de policeAa
Blog AlphormBlog Alphorm
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
Search
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
Suivez-nous
© Alphorm 2024 - Tous droits réservés
Développement

Intégrer Bootstrap et Axios dans Vue.js

L'Équipe Alphorm Par L'Équipe Alphorm 17 janvier 2025
Partager
Partager

La consommation d’API est essentielle pour les applications modernes, mais elle peut être complexe à gérer.

Sans les bons outils, vous risquez des intégrations inefficaces et des difficultés à maintenir votre code.

Cet article vous guide à travers l’intégration de Bootstrap et Axios dans Vue.js pour simplifier la consommation d’API.

Table de matière
Installer Bootstrap pour Vue.jsUtiliser Axios avec Vue.jsFAQConclusion

Formation Vue JS 3 : Maîtriser les bases

Acquérez les compétences fondamentales pour créer des applications avec Vue JS 3!

Découvrir cette formation

Pour cette partie, nous nous intéressons sur la consommation d’une API (application programming interface ou « interface de programmation d’application ») ; c’est une interface logicielle qui permet de « connecter » un logiciel ou un service à un autre logiciel ou service afin d’échanger des données et des fonctionnalités.

Diagramme montrant comment fonctionne une API.

Installer Bootstrap pour Vue.js

Utilisation d'Axios avec Vue.js pour HTTP

Essayez de créer un nouveau projet.

Installez boostrap axios par la commande :

				
					
 npm install bootstrap axios

				
			

Après l’installation, vérifiez dans node_modules qu’Axios est bien là :

Dossier Axios dans node_modules Vue.js

Puis, importez le bootstrap dans main.js

				
					
 import { createApp } from 'vue'
import App from './App.vue'
createApp(App).mount('#app')
import 'bootstrap/dist/css/bootstrap.css'

				
			

Mettez dans App.vue ceci :

				
					
 <template>
<div class="container" id="app">

</div>

</template>
<script>
import axios from 'axios';//importe la bibliothèque axios pour effectuer les requetes HTTP
export default {
name: 'App',
data(){
return{
apiUrl: 'https://jsonplaceholder.typicode.com/posts/1',//est l’URL de l’API que nous allons intérroger
id: '',
title: '',
body: '',
userId: '',
}//ce sont des variables pour stocker les données de la réponse de l’API
},
mounted(){//un hook de cycle de vie de vueJs qui est appelé après que le composant a été monté sur le DOM
axios
.get(this.apiUrl)//effectue une requête GET à l’URL spécifiée
.then(response => {
console.log(response);//traite le réponse en cas de succès et la logge dans le console
});
}

}
</script>

				
			

L’appel à l’API est bien fait

Capture réponse API Vue.js dans console

Ajoutez ceci dans la template :

				
					
 <template>
<div class="container" id="app">
<h1 class="mt-5">{{title.toUpperCase()}}</h1>//affiche le titre en majuscules
<p class="lead">{{body}}</p>//affiche le corps du post
<p>Post ID : {{id}} de user {{userId}}</p>//affiche l’ID du post et l’ID de l’utilisateur
</div>
</template>

				
			

Ceci dans le script

				
					
 mounted(){
axios
.get(this.apiUrl)
.then(response => {
console.log(response);
this.title= response.data.title;
this.body= response.data.body;
this.id= response.data.id;
this.userId= response.data.userId;
});//la méthode mounted fait une requete GET à l’API et mis a jour les variables data avec les données de la réponse. En cas de succès, les donnèes(title,body,id,userId) sont extraites de response.data et assignées aux propriétés du composant. En cas d’erreur, un message d’erreur est logué et stocké dans error.
}

				
			

Le navigateur affiche :

Exemple d'affichage de post API avec Vue.js

Le 1 vient de la valeur de id et userId dans la console :

Réponse API JSON affichée avec Vue.js

Créez une nouvelle application

Installez vue axios et bootstrap par la commande

Vérifiez dans le node_modules

Utiliser Axios avec Vue.js

Contenu du dossier vue-axios sous node_modules

Configurez le main.js

				
					
 import { createApp } from 'vue'
import App from './App.vue'
import axios from 'axios'
import VueAxios from 'vue-axios'//importez axios et le plugin VueAxios
const VueApp= createApp(App)
VueApp.use(VueAxios, axios)//utilisez le plugin VueAxios avec axios
.mount('#app')
import 'bootstrap/dist/css/bootstrap.css'//importez les styles de Bootstrap

				
			

Créez un nouveau composant « PhotosRow »

				
					
 <template>
<div class="row d-inline-flex"></div>

</template>
<script>
export default {
name: 'PhotosRow',
data(){
return{
apiUrl: 'https://jsonplaceholder.typicode.com/photos',//l’URL de l’API d’où les données des photos sont récupérées
responseData: null,//une propriété pour stocker les données récupérées de l’API
}
},
methods:{
fetchApi(){
this.axios.get(this.apiUrl)
.then((response) =>{
this.responseData = response.data;
console.log(response.data);
})
.catch((error) => {
console.log(error);
})//une méthode qui utilise axios pour faire une requete GET à l’URL de l’API. Si la requete réussit les données récupérées sont stockées dans responseData et affichés dans la console. Si elle échoue une erreur est affichée dans la console.
}
},
mounted(){
this.fetchApi();

},//cette méthode de cycle de vie est appelée lorsque le composant est monté sur le DOM Elle appelle fetchApi()pour récupérer les données de l’API lorsque le composant est initialisé.
}
</script>
<style scoped>
</style>

				
			

La console affiche :

Capture d'un array JavaScript dans Vue.js

Importez le composant PhotoRow.vue dans App.vue

				
					
 <template>
<div v-if="this.responseData" class="row d-inline-flex">//affiche le div contenant les cartes uniquement si responseData contient des données
<div v-for="(data, index) in responseData" :key="index" class="card" style="width: 18rem;">//utilisé pour itérer sur chaque élémént de responseData Chaque élément est représenté par data et son index par index
<img :src="data.thumbnailUrl"  class="card-img-top" alt="" width="" height="">
<div class="card-body"></div>
<h5 class="card-title text-truncate">{{data.title}}</h5>
<a :href="data.url" class="btn btn-primary" data-wpel-link="internal" target="_self" rel="follow noopener noreferrer">Voir l'image {{data.id}}</a>
</div>
</div>

</template>

				
			

Voilà le résultat :

Galerie d'images API affichées avec Vue.js

Créez un composant « PostStore.vue » et importez le dans App.vue

				
					
 <template>
<div class="row d-inline-flex">
<form>
<div class="form-groupe">
<input type="text" name="" class="form-control" placeholder="Titre">
</div>
<br><br>
<div class="form-groupe">
<textarea name="" class="form-control" placeholder="Body...."></textarea>
</div>
<br><br>
<div class="form-groupe">
<button class="btn btn-primary">Envoyer</button>
</div>
</form>
</div>
</template>
<script>
export default {
name: 'PostStore',

}
</script>
<style scoped>
</style>

				
			

Voilà ce qui apparait dans le navigateur :

Formulaire simple Vue.js pour API

Créez un nouveau composant PostStore.vue

				
					
 <script>
export default {
name: 'PostStore',
data(){
return{
post:{

},
responseData: null,
}
},
methods:{
onSubmit(){//une méthode qui est déclenchée lors de la soumission du formulaire
if(this.post.title && this.post.body){//vérifie si les 02 posts sont viides
this.responseData = null;//réinitialise responseData à null
let body = JSON.stringify({
title: this.post.title,
body: this.post.body,
userId: 2,
});
this.axios.post('https://jsonplaceholder.typicode.com/posts', body)//envoie une requete POST à cet URL avec les données JSON
.then((response) =>{
console.log(response);
console.log(response.status);
this.responseData = response.data;
if(response.status == 201){//stocke les données de la réponse dans responseData et réinitialise post à un objet vide si la requete est réussie
console.log('Post ajouté : '+ JSON.stringify(this.responseData));
this.post={};
}

})
}

}
}
}
</script>

				
			

Mettez ceci dans Input pour le titre

				
					
 v-model="post.title"

				
			

Et cela dans Input pour le Body

				
					
 v-model="post.body"

				
			

v-model= »post.title » et v-model= »post.body » : ces liaisons bidirectionnelles assurent que les données des champs de formulaire sont automatiquement mises à jour dans l’objet post de data .

Le résultat c’est quand on tape sur le formulaire , le PostStore affiche les données

Interface Vue.js avec champs et réponse API

Quand vous cliquez sur Envoyer, il récupère ces données

Interface Vue.js pour envoyer des données API

Créez un composant PostUpdate.vue

				
					
 <template>
<div class="row d-inline-flex">
<form @submit.prevent="onSubmit">//appelle la méthode onSubmit lorsque le formulaire est envoyé
<div class="form-groupe">
<input type="text"
name="title"
v-model="this.title"
ref="put_title"
class="form-control"
placeholder="Titre">
</div>
<br><br>
<div class="form-groupe">
<textarea
name="body"
v-model="this.body"
ref="put_body"
class="form-control"
placeholder="Body...."></textarea>
</div>//les champs title et body sont liés aux variables title et bode via v-model
<br><br>

<input type="hidden" name="userId" v-model="this.userId" ref="put_userId">
<input type="hidden" name="id" v-model="this.id" ref="put_id">
//userId et id sont également liés à this.userId et this.id
<div class="form-groupe">
<button class="btn btn-primary">Update</button>//bouton permet de soumettre le formulaire
</div>
</form>
</div>
</template>
<script>
export default {
name: 'PostUpdate',
data(){
return{
apiUrl: 'https://jsonplaceholder.typicode.com/posts/1',
id: '',
title: '',
body: '',
userId: '',
}
},
methods:{
onsubmit(){
console.log(this.$refs);
const { put_title, put_body, put_id, put_userId} = this.$refs;
const id = put_id.value();
let body= JSON.stringify({
id :id,
title : put_title.value,
body: put_body.value,
userId : put_userId.value,
})

this.axios.put('https://jsonplaceholder.typicode.com/posts/' +id, body)
.then((response) =>{
console.log(response);
console.log(response.status);
if(response.status == 200){
console.log('Post mis à jour :' +JSON.stringify(response.data));
}
})
}
},//récupère les valeurs des champs à partir de this.$refs crée un objet JSON avec les valeurs mises à jour puis envoie une requete PUT à l’API pour mettre à jour le post existant.Si la mise à jour réussit(response.status==200) un message est affiché dans la console.
mounted(){
.get(this.apiUrl)
.then(response => {
console.log(response);
this.title= response.data.title;
this.body = response.data.body;
this.id= response.data.id;
this.userId = response.data.userId;
})//lorsque le composant est monté, une requete GET est envoyée à l’API(this.apiURL) pour récupérer les détails du post existant. Les données sont ensuite assignées aux variables title,body,id et userId
}
}
</script>

				
			

Le rendu c’est :

Interface Vue.js pour consommer une API

Créez un nouveau composant PostDelete.vue

				
					
 <template>
<div class="row d-inline-flex">
<h1 class="mt-5">{{title.toUpperCase()}}</h1>
<p class="lead">{{body}}</p>
<p>Post ID: {{id}} de user {{userId}}</p>
<form @submit.prevent="onSubmit">
<input type="hidden"
name="id"
v-model="this.id"
ref="delete_id"
>
<button class="btn btn-danger">Supprimer</button>
</form>
</div>

</template>
<script>
export default {
name: 'PostDelete',

data(){
return{
apiUrl: 'https://jsonplaceholder.typicode.com/posts/1',
id: '',
title: '',
body: '',
userId: '',
}
},
methods:{
onsubmit(){
const id = this.$refs.delete_id.value;//méthode appelée lors de la soumission du formulaire pour supprimer le post
this.axios.delete('https://jsonplaceholder.typicode.com/posts/'+id)
.then((response) => {
console.log(response);
console.log(response.status);
if(response.status == 200){
alert('Post supprimé');
}

})
}
},
mounted(){
this.axios
.get(this.apiUrl)
.then(response => {
console.log(response);
this.title= response.data.title;
this.body = response.data.body;
this.id= response.data.id;
this.userId = response.data.userId;
})
}
}
</script>

				
			

Voilà le rendu

Interface Vue.js affichant un post API
Console réseau affichant des requêtes API Vue.js

Formez-vous gratuitement avec Alphorm !

Maîtrisez les compétences clés en IT grâce à nos formations gratuites et accélérez votre carrière dès aujourd'hui.

Démarrer gratuitement
illustration processus de paiement en ligne avec étapes claires et convivialité

FAQ

Comment installer Bootstrap et Axios dans un projet Vue.js ?
Pour installer Bootstrap et Axios dans un projet Vue.js, commencez par créer un nouveau projet avec Vue CLI. Utilisez ensuite la commande npm install bootstrap axios pour ajouter ces bibliothèques à votre projet. Vérifiez leur présence dans le dossier node_modules pour confirmer l’installation. Enfin, importez Bootstrap dans le fichier main.js et configurez VueAxios pour qu’Axios soit disponible globalement dans votre application.
Comment effectuer des appels API avec Axios dans Vue.js ?
Pour effectuer des appels API avec Axios dans Vue.js, commencez par installer Axios via npm. Ensuite, importez Axios dans le script de votre composant et utilisez la méthode axios.get() pour les requêtes GET. Assurez-vous de stocker les données de la réponse dans les propriétés data de votre composant pour les afficher dans le template. Utilisez les hooks de cycle de vie pour initier les appels API lorsque le composant est monté.
Comment créer et gérer des composants Vue.js pour consommer des API ?
La création de composants Vue.js pour consommer des API implique de définir des composants avec des propriétés data et des méthodes pour les appels API. Utilisez Axios pour effectuer les requêtes et stockez les données récupérées dans les propriétés du composant. Vous pouvez structurer votre application en composants réutilisables pour chaque fonctionnalité, comme l’affichage de listes de données ou la mise à jour de posts, en implémentant des méthodes spécifiques pour chaque action.
Comment utiliser Vue.js pour afficher et modifier des données API ?
Pour afficher et modifier des données API avec Vue.js, utilisez Axios pour récupérer les données et affichez-les dans le template à l’aide de v-for pour les listes. Pour modifier les données, créez des formulaires liés aux propriétés du composant avec v-model. Implémentez des méthodes pour envoyer des requêtes PUT ou POST via Axios, et mettez à jour l’interface utilisateur avec les nouvelles données récupérées de l’API.
Comment gérer les erreurs lors des appels API avec Axios dans Vue.js ?
Lors des appels API avec Axios dans Vue.js, gérez les erreurs en utilisant la méthode catch() sur vos promesses Axios. Loggez les erreurs dans la console pour les diagnostiquer et informez l’utilisateur avec des messages appropriés dans l’interface. Vous pouvez également afficher des alertes ou des composants d’erreur pour signaler les problèmes de réseau ou les erreurs de réponse de l’API.

Conclusion

En combinant Vue.js avec Bootstrap et Axios, vous simplifiez la gestion des API dans vos applications. Quels autres outils utilisez-vous pour optimiser vos projets Vue.js ?

ÉTIQUETÉ : Vue.js
Facebook
Twitter
LinkedIn
Email
WhatsApp
Par L'Équipe Alphorm
Démocratiser la Connaissance Informatique pour Tous !
Suivre :
L'Équipe Alphorm, c'est la démocratisation de la connaissance informatique. Passionnés et dévoués, nous sommes là pour vous guider vers le succès en rendant la technologie accessible à tous. Rejoignez notre aventure d'apprentissage et de partage. Avec nous, le savoir IT devient une ressource inspirante et ouverte à tous dans un monde numérique en constante évolution.

Derniers Articles

  • Techniques pour gérer les fichiers texte en C#
  • Créer et lire un fichier CSV avec C#
  • JSON : Comprendre et Utiliser Efficacement
  • Créer une Base SQLite dans C#
  • Lecture des données SQLite simplifiée
Laisser un commentaire Laisser un commentaire

Laisser un commentaire Annuler la réponse

Vous devez vous connecter pour publier un commentaire.

Blog Alphorm
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
En cours de lecture : Intégrer Bootstrap et Axios dans Vue.js

© Alphorm - Tous droits réservés