Vue JS : Comprendre Le Framework Javascript Qui Vous Veut Du Bien
Maybe your like
1Qu’est-ce que Vue.js ?
2Les concepts de base de Vue.js
2.1Rendu déclaratif et réactivité
2.2Interactions utilisateur
2.3Boucles et conditions
3Les composants en Vue.js
4VueJS et maintenabilité du code
5Conclusion : VueJS, une technologie en perpétuelle évolution !
Accueil
Blog
Article

18+
annéesd'expérience60+
expertstechniques150K
écoutes de notre podcastVue JS : comprendre le framework Javascript qui vous veut du bien !Présentation des concepts de base du framework Javascript Vue.jsFramework JavaScript populaire.
Hugo JAHNKEMis à jour le 24 Janv 2024Qu’est-ce que Vue.js ?
Vue.js (aussi appelé plus simplement Vue), est un framework JavaScript open-source utilisé pour construire des interfaces utilisateur et des applications web monopages (SPA). Vue a été créé par Evan You et est maintenu par lui-même, et le reste des membres actifs de l’équipe principale travaillant sur le projet et son écosystème.
Dans cet article, nous allons parler des concepts de base et des avantages qu’offre Vue. C’est parti !
Les concepts de base de Vue.js
Afin de développer des applications avec Vue, nous pouvons nous appuyer sur les fonctionnalités principales du framework.
Rendu déclaratif et réactivité
Pouvant être également trouvé dans d’autres frameworks/librairies, le rendu déclaratif est un système permettant d’insérer de la donnée de façon déclarative au sein du DOM à l’aide d’une syntaxe de template.
<body> <div id="compteur"> Compteur : {{ compteur }} </div> <script> const Compteur = { data() { return { compteur: 0 } } } Vue.createApp(Compteur).mount(’#compteur’) </script> </body>Dans cet exemple, on vient injecter la valeur de la propriété compteur au sein d’un élément HTMLHTML (HyperText Markup Language) est un langage permettant de décrire le découpage d'une page web.. Mais ce n’est pas tout, car en arrière-plan Vue a créé un lien entre la propriété compteur et le DOM. Ainsi, dès lors que la valeur de la propriété compteur sera modifiée, le DOM sera rafraîchi, c’est ce qu’on appelle la réactivité.
Le rendu déclaratif n’est cependant pas limité au contenu des éléments HTML, il est également possible de lier des propriétés JavaScriptLangage de scripting orienté objet avec les attributs des éléments HTML à l’aide de la directive v-bind :
<body> <div id="bind-attribut"> <a v-bind:href="lien">Axopen</a> </div> <script> const BindAttribut = { data() { return { lien: "https://www.axopen.com" } } } Vue.createApp(BindAttribut).mount(’#bind-attribut’) </script> </body>VueJS propose de nombreuses directives qui permettent de contrôler le comportement du DOM, nous en verrons d’autres plus tard.
En plus d’illustrer le concept de rendu déclaratif et de réactivité, les exemples ci-dessus permettent de présenter la manière de créer une application avec Vue.
En effet, Vue.createApp(Compteur).mount(’#compteur’) et Vue.createApp(BindAttribut).mount(’#bind-attribut’) permettent de créer une instance de Vue à partir des objets Compteur et BindAttribut et de la lier à un élément HTML portant respectivement l’id compteur et bind-attribut.
Interactions utilisateur
Pour permettre aux utilisateurs d’interagir avec notre application, il est possible d’utiliser la directive v-on afin de réagir à différents évènements :
<body> <div id="reaction-evenement"> <p>{{ message }}</p> <button v-on:click="inverserMessage">Inverser le message</button> </div> <script> const ReactionEvenement = { data() { return { message: ’Hello Vue.js!’ } }, methods: { inverserMessage() { this.message = this.message .split(’’) .reverse() .join(’’) } } } Vue.createApp(ReactionEvenement).mount(’#reaction-evenement’) </script> </body>Dans l’exemple ci-dessus, lorsque l’utilisateur clique sur le bouton, la méthode inverserMessage est appelée afin d’inverser la chaîne de caractères contenue dans la propriété message, et grâce au système de réactivité, le DOM est automatiquement mis à jour sans que nous ayons à faire quoi que ce soit d’autre.
Vue.Js fournit également la directive v-model qui permet de créer une liaison bidirectionnelle (two-way binding) entre une propriété JavaScript et un élément de type input :
<body> <div id="two-way-binding"> <p>{{ message }}</p> <input v-model="message" /> </div> <script> const TwoWayBinding = { data() { return { message: ’Hello Vue!’ } } } Vue.createApp(TwoWayBinding).mount(’#two-way-binding’) </script> </body>Comprenez ici que lorsque l’utilisateur modifie la valeur de l’élément <input v-model="message" />, la valeur de la propriété message est automatiquement mise à jour.
Boucles et conditions
Afin de pouvoir contrôler au mieux la structure du DOM, les directives v-for et v-if permettent respectivement de répéter et d’afficher/masquer des éléments HTML :
<body> <div id="boucle"> <ol> <li v-for="todo in todos"> {{ todo.label }} </li> </ol> </div> <script> const Boucle = { data() { return { todos: [ { label: ’Apprendre JavaScript’ }, { label: ’Apprendre Vue’ }, { label: ’Développer une application géniale’ } ] } } } Vue.createApp(Boucle).mount(’#boucle’) </script> </body> <body> <div id="rendu-conditionnel"> <p v-if="visible">Vous me voyez</p> <button v-on:click="visible = !visible">{{ action }}</button> </div> <script> const RenduContionnel = { data() { return { visible: true } }, computed: { action() { return this.visible ? ’Masquer’ : ’Afficher’ } } } Vue.createApp(RenduContionnel).mount(’#rendu-conditionnel’) </script> </body>Les composants en Vue.js
En plus des différentes fonctionnalités présentées précédemment, Vue propose un système de composants qui facilite le développement d’applications de grande envergure et qui permet également de structurer l’interface utilisateur en une arborescence de petits éléments indépendants et réutilisables. 
Un composant n’est ni plus ni moins qu’une instance de Vue avec des options prédéfinies.
Pour créer un composant, il suffit de créer une nouvelle application avec la méthode createApp() puis d’utiliser la méthode component() avant de monter l’application avec la méthode mount() :
<body> <div id="app"> <todo-item /> </div> <script> const app = Vue.createApp({}) app.component(’todo-item’, { template: `<li>Apprendre Vue</li>` }) app.mount(’#app’) </script> </body>Ici, on utilise la méthode component() pour créer un nouveau composant que l’on pourra insérer à n’importe quel endroit de notre arborescence HTML grâce au sélecteur todo-item. Ce dernier sera alors remplacé par le template contenu dans la propriété template du composant.
Néanmoins, à chaque fois que l’on appellera ce composant, il affichera exactement la même chose, ce qui n’est pas très intéressant... Il est donc nécessaire d’apporter quelques modifications à notre composant afin de pouvoir lui transmettre des données :
app.component(’todo-item’, { props: [’todo’], template: `<li>{{ todo.label }}</li>` })Il est désormais possible de passer une propriété todo à tous les composants todo-item à l’aide de la directive v-bind :
<body> <div id="app"> <todo-item v-for="todo in todos" v-bind:todo="todo" v-bind:key="todo.id" /> </div> <script> const app = Vue.createApp({ data() { return { todos: [ { id: 0, label: ’Apprendre JavaScript’ }, { id: 1, label: ’Apprendre Vue’ }, { id: 2, label: ’Développer une application géniale’ } ] } } }) app.component(’todo-item’, { props: [’todo’], template: `<li>{{ todo.label }}</li>` }) app.mount(’#app’) </script> </body>En créant le composant todo-item, nous avons été en mesure d’éviter une potentielle redondance dans le code et nous possédons désormais un élément indépendant et réutilisable à n’importe quel endroit de notre application !
VueJS et maintenabilité du code
Les concepts de base présentés précédemment sont rapides à prendre en main et vous permettrons d’apprendre à manipuler le framework. Cependant, si vous souhaitez développer une application de grande envergure vous risquerez d’être confronté à un problème de maintenabilité du code, notamment dans la cadre d’un projet avec plusieurs autres développeurs.
Prenons l’exemple d’une application permettant de lister les répertoires d’un utilisateur, en ajoutant la possibilité de filtrer les résultats et d’en rechercher à l’aide d’un champ de texte. Notre composant pourrait alors ressembler à ceci :
export default { props: { utilisateur: { type: String, required: true } }, data () { return { repertoires: [], // 1 filtre: { ... }, // 3 recherche: ’’ // 2 } }, computed: { repertoiresCorresponsantFiltre() { ... }, // 3 repertoiresCorrespondantRecherche () { ... }, // 2 }, watch: { utilisateur: ’getRepertoiresUtilisateur’ // 1 }, methods: { getRepertoiresUtilisateur () { ... }, // 1 updateFilters () { ... }, // 3 }, mounted () { this.getRepertoiresUtilisateur() // 1 } }Ce composant a alors plusieurs rôles :
- Récupérer les répertoires de l’utilisateur
- Effectuer une recherche plein texte pour filtrer la liste
- Filtrer la liste des répertoires de manière plus précise
En regardant la structure du composant, on peut remarquer que les différents morceaux de code liés à la logique de chacun des rôles du composant s’entremêlent. Cela peut donc rendre des composants difficiles à lire et à comprendre, en particulier pour les personnes qui ne les ont pas écrits.
Heureusement, la version 3 du framework VueJS sortie fin 2020 vient apporter une solution à ce problème : l’API de Composition.
Conclusion : VueJS, une technologie en perpétuelle évolution !
Comme nous avons pu le voir, Vue est simple à prendre en main et très agréable à utiliser. Ce n’est pas l'un des principaux framework JavaScript pour rien et est un choix complètement viable pour le démarrage d’un nouveau projet ou la migration progressive d’une application existante.
VueJS est une technologie qui ne cesse de s’améliorer en cherchant à combler toutes ses lacunes sans empiéter sur les performances ou l’expérience de développement.
javascriptwebvuejsdéveloppementframeworkNos podcasts en lien
Sécurité des applications web : enjeux et bonnes pratiques back & front
Bases de données : Choix, Modélisation et Evolution !Pour aller plus loin
EJB Singleton et javax. ejb. Concurrent Access Timeout Exception: JBAS014373
Il existe un mécanisme de lock sur les EJB permettant de verrouiller celui-ci. Cela permet de définir, quand le Bean est accessible pour traiter une requête.
HaProxy: JBoss EAP 6.1 et MySql Réplication
Problème de perte de connexion avec Mysql avec l’utilisation de HAPROXY
Optimisez vos jobs Talend pour la copie de table à table
L’ETL Talend permet de paramétrer facilement la copie d’une table vers une autre ayant la même structure.
Envie de devenir un(e) membre de la AXOTeam ?
Découvrez notre univers tech et nos offres d'emplois !
Je postule
Nous suivre, nous écouter




Notre équipe de techs à Lyon vous aide à faire évoluer votre SI, en développant des applications utiles et durables !
18+
ans d'experience
60+
experts techniques
150K
écoutes de notre podcast
04 82 53 26 44La société
Qui sommes-nous?
Nos convictions techniques
Notre histoire
Vivre Axopen
Nos jobs
Nos engagements RSE
Digital factory
Nos ressources
Expertises
Web
Mobile
DevOps
Cloud
Architecture
Intégration IA & LLM
Secteurs d'activités
Assurances
Industrie
Santé
Energie
Métiers
Audit et Expertise
Centre de services informatique
Développement sur mesure
Pilotage & Gestion de projets
Maintenance & Evolutions
Réalisations
Jobs
Nos ressources
La News AXO
1 sujet IT décrypté tous les mois et sans langue de bois dans votre boite mail !
Je m'abonne
Le Podcast AXOPEN
Ecoutez nos experts techniques sur vos plateformes préférées !

©2025 AXOPEN
235 Cours Lafayette - 69006 Lyon, France
Mentions légales
Tag » Apprendre Vue.js
-
Introduction - Vue.js
-
Créez Une Application Web Avec Vue.js - OpenClassrooms
-
Apprendre Vue.js 3 - Jour 1 : Concepts De Base
-
Apprendre VueJS | Grafikart
-
Vue.js 2 - Le Guide Complet Pour Débutant | Udemy
-
Premiers Pas Avec Vue.js - Learn | Microsoft Docs
-
Apprendre à Utiliser Vue JS 3 En Ligne | Skilleos
-
Prise En Main De Vue - Apprendre Le Développement Web - MDN
-
[TUTO] Vue JS : Les Bases En 35 Minutes ! - YouTube
-
[PDF] Vue.js - RIP Tutorial
-
Tutoriel VueJS 3 Pour Les Débutants - Gekkode
-
Les Bases De Vue.JS 3 - Introduction Et Installation - Training-dev
-
- Vue.js: Applications Web Complexes Et Réactives - Livres
-
Apprendre Vue.js Rapidement - Ezo, Inc. - Blogue TI