Vue.js
Vue.js est un framework front-end JavaScript progressif conçu pour faciliter le développement d’interfaces utilisateur dynamiques et réactives. Créé en 2014 par Evan You, Vue s’est imposé comme l’une des solutions les plus populaires pour le développement front-end grâce à sa simplicité, sa flexibilité et ses performances élevées.
Contrairement à React et Angular, Vue.js adopte une approche progressive, ce qui signifie qu’il peut être intégré progressivement dans un projet sans nécessiter une refonte complète. Il est utilisé par de nombreuses entreprises comme Alibaba, Xiaomi et GitLab, ce qui témoigne de sa robustesse et de sa fiabilité.
Pourquoi choisir Vue.js ?
Vue.js se distingue par plusieurs caractéristiques qui le rendent particulièrement attractif pour les développeurs :
1. Facilité d’apprentissage
Vue possède une syntaxe claire et intuitive, inspirée de React et Angular, tout en restant plus simple. Son approche basée sur le HTML, CSS et JavaScript facilite sa prise en main, même pour les débutants.
Exemple de composant Vue.js :
<template>
<h1>Bonjour, {{ name }} !</h1>
</template>
<script>
export default {
data() {
return {
name: "Alice"
};
}
};
</script>
Ici, la variable name est réactive et s’affichera automatiquement dans le DOM.
2. Approche progressive
Contrairement à Angular, Vue n’impose pas une architecture rigide. Il peut être utilisé de manière légère dans une page HTML avec une simple balise <script>, ou intégré dans un projet complexe avec un écosystème complet.
<script src="https://cdn.jsdelivr.net/npm/vue@3"></script>
<div id="app">
<p>{{ message }}</p>
</div>
<script>
Vue.createApp({
data() {
return { message: "Hello Vue !" };
}
}).mount("#app");
</script>
Aucune configuration complexe n’est requise pour commencer à utiliser Vue.js !
3. Réactivité et Virtual DOM
Vue.js adopte un système de réactivité avancé, similaire à React, qui met à jour le DOM uniquement lorsque nécessaire. Il utilise un Virtual DOM pour optimiser les performances et réduire les re-rendus inutiles.
Exemple de mise à jour réactive d’une variable :
<template>
<button @click="count++">Compteur : {{ count }}</button>
</template>
<script>
export default {
data() {
return { count: 0 };
}
};
</script>
À chaque clic, le composant se met à jour automatiquement, sans nécessiter de manipulation directe du DOM.
Les concepts fondamentaux de Vue.js
1. Les composants : la base d’une application Vue
Vue.js repose sur une architecture basée sur les composants, ce qui permet de diviser une application en éléments modulaires et réutilisables.
Exemple d’un composant Vue :
<template>
<div>
<h2>{{ title }}</h2>
<p>{{ description }}</p>
</div>
</template>
<script>
export default {
props: ["title", "description"]
};
</script>
Ce composant peut être réutilisé en lui passant des props (propriétés) :
<MonComposant title="Bienvenue" description="Ceci est un exemple Vue.js" />
2. La gestion de l’état avec data()
Dans Vue, l’état est géré via la méthode data(), qui retourne un objet contenant les données réactives du composant.
Exemple de gestion de l’état local :
<template>
<p>Nom : {{ user.name }}</p>
</template>
<script>
export default {
data() {
return {
user: { name: "Alice" }
};
}
};
</script>
Les variables déclarées dans data() sont directement liées au DOM et mises à jour automatiquement.
3. Les directives Vue.js
Vue propose un ensemble de directives permettant d’ajouter du comportement dynamique au HTML.
Quelques directives utiles :
| Directive | Fonction |
|---|---|
| v-bind | Lie une valeur à un attribut HTML |
v-if / v-else | Affichage conditionnel |
| v-for | Boucle sur un tableau d’éléments |
| v-model | Liaison bidirectionnelle avec un champ de formulaire |
v-on (@) | Écouteur d’événement (@click, @mouseover, etc.) |
Exemple avec v-if et v-for :
<template>
<p v-if="isLoggedIn">Bienvenue !</p>
<ul>
<li v-for="user in users" :key="user.id">{{ user.name }}</li>
</ul>
</template>
<script>
export default {
data() {
return {
isLoggedIn: true,
users: [{ id: 1, name: "Alice" }, { id: 2, name: "Bob" }]
};
}
};
</script>
L’écosystème Vue.js
1. Vue Router : la gestion des routes
Vue Router permet de créer une navigation multi-pages sans rechargement.
Exemple de configuration Vue Router :
import { createRouter, createWebHistory } from "vue-router";
import Home from "./Home.vue";
import About from "./About.vue";
const routes = [
{ path: "/", component: Home },
{ path: "/about", component: About }
];
const router = createRouter({
history: createWebHistory(),
routes
});
export default router;
2. Pinia et Vuex : la gestion d’état globale
Pour gérer l’état d’une application complexe, Vue propose Vuex (anciennement) et Pinia (nouvelle approche recommandée).
Exemple avec Pinia :
import { defineStore } from "pinia";
export const useCounterStore = defineStore("counter", {
state: () => ({ count: 0 }),
actions: {
increment() {
this.count++;
}
}
});
3. Nuxt.js : Le framework Vue pour le SEO et le SSR
Nuxt.js est un framework basé sur Vue qui permet le rendu côté serveur (SSR) et la génération de sites statiques, améliorant ainsi le SEO et les performances.
Avantages de Nuxt.js :
- SEO optimisé grâce au rendu côté serveur.
- Structure préconfigurée facilitant le développement.
- Meilleure gestion des performances.
Pourquoi choisir Vue.js ?
Vue.js est une solution moderne, légère et flexible, idéale pour les développeurs recherchant un framework rapide à prendre en main tout en étant performant et évolutif. Son écosystème mature avec Vue Router, Pinia et Nuxt.js en fait un excellent choix pour tout type de projet front-end.