Qu'est-ce que Vue.js ?
Vue.js est un framework JavaScript progressif pour construire des interfaces utilisateur et des applications single-page. Créé par Evan You en 2014, Vue se distingue de React et Angular en étant accessible : la plupart des développeurs peuvent être productifs en Vue en quelques heures plutôt qu'en semaines. La version majeure actuelle est Vue 3 (sortie en septembre 2020), qui a introduit la Composition API à côté de l'Options API originale.
Le mot "progressif" dans le slogan de Vue compte. Contrairement à Angular (framework lourd, opinionné sur tout) ou React (librairie légère qui nécessite d'assembler votre propre écosystème), Vue est conçu pour évoluer avec vos besoins. Déposez une seule balise <script> sur une page HTML pour ajouter un comportement réactif à un widget. Ou utilisez tout l'écosystème Vue (Vue Router, Pinia, Nuxt, Vite) pour construire un SPA de production. Le même framework supporte les deux extrêmes.
Les deux APIs : Options vs. Composition
Options API (style Vue 2, toujours supporté dans Vue 3)
Les composants sont déclarés comme des objets avec des sections nommées (data, methods, computed, watch, hooks de cycle de vie) :
export default {
data() {
return { count: 0 };
},
computed: {
doubled() { return this.count * 2; }
},
methods: {
increment() { this.count++; }
}
}Facile à enseigner, facile à lire, mais la logique d'une fonctionnalité se disperse à travers les sections.
Composition API (par défaut Vue 3 pour le nouveau code)
La logique est organisée par préoccupation en utilisant setup() et des primitives réactives (ref, reactive, computed, watch) :
import { ref, computed } from 'vue';
export default {
setup() {
const count = ref(0);
const doubled = computed(() => count.value * 2);
const increment = () => count.value++;
return { count, doubled, increment };
}
}Meilleure pour les composants complexes et la réutilisation de code via les composables (l'équivalent Vue des React hooks). Le sucre syntaxique <script setup> le rend encore plus concis.
L'écosystème Vue (les parties qui livrent avec le framework)
- Vue Router — librairie de routing officielle. Navigation SPA, params de route, routes imbriquées, lazy loading, route guards.
- Pinia — gestion d'état officielle (a remplacé Vuex dans Vue 3). Type-safe, intégrée aux devtools, API plus simple que Redux.
- Vite — propre serveur de dev et outil de build d'Evan You. Utilisé comme par défaut de Vue depuis 2021. Hot module reload sub-seconde.
- Vue DevTools — extension de navigateur pour inspecter les composants, l'état et les événements.
- Nuxt — méta-framework au-dessus de Vue (équivalent Vue de Next.js). SSR, routing basé fichier, auto-imports, routes API intégrées.
Vue vs. React vs. Angular (la comparaison honnête)
| Aspect | Vue | React | Angular |
|---|---|---|---|
| Taille bundle | ~33KB | ~45KB (avec ReactDOM) | ~150KB+ |
| Courbe d'apprentissage | Douce | Modérée (JSX, hooks) | Raide |
| Templates | Type-HTML avec directives | JSX (type-JS) | HTML avec syntaxe Angular |
| Gestion d'état | Pinia | Redux/Zustand/Jotai | NgRx/Akita |
| Style | CSS scoped, modules CSS | CSS-in-JS, modules | Encapsulé par composant |
| Pool d'embauche | Plus petit mais en croissance | Le plus grand | Orienté entreprise |
| Mieux pour | Apps avec équipes à l'aise avec HTML | Apps nécessitant un écosystème étendu | Grandes apps d'entreprise |
Considérations courantes de performance Vue
- v-for + v-if sur le même élément. Ne le faites pas.
v-ifa la priorité dans Vue 3, ce qui signifie quev-forne s'exécute même pas quand v-if est false (bon pour sauter mais confus). Mieux : enveloppez dans un<template>avec v-if ou pré-filtrez le tableau. - Watchers explosant en nombre. Chaque
watchcrée une dépendance de réactivité. UtilisezwatchEffectavec parcimonie. Préférezcomputedquand vous le pouvez. - Données profondes non-réactives. Si vous avez de grandes structures de données qui n'ont pas besoin d'être réactives (comme une référence de tableau de 10K lignes), utilisez
shallowRefoumarkRawpour sauter l'enveloppement Proxy de Vue. - Taille de bundle de tout l'écosystème. Vue Router + Pinia + une bibliothèque UI + votre code peut atteindre rapidement 200KB+ gzippé. Utilisez l'analyseur de bundle de Vite et lazy-loadez les composants de route.
- Mismatchs d'hydratation en SSR. Le serveur rend un DOM légèrement différent que celui que le client monte. Vérifiez que vos données sont identiques des deux côtés — coupables courants sont
Date, IDs aléatoires et feature flags.
Considérations de migration Vue 2 vs. Vue 3
Vue 2 a atteint sa fin de vie le 31 décembre 2023. Si vous êtes encore sur Vue 2, commencez la migration maintenant. Changements clés cassants :
- La réactivité utilise Proxy maintenant au lieu de
Object.defineProperty— plus fiable, mais signifie que vous ne pouvez pas détecter réactivement l'ajout de nouvelles propriétés. - Plusieurs nœuds racines par composant (fragments) sont maintenant autorisés.
- API Teleport pour rendre ailleurs dans le DOM.
- Meilleur support TypeScript partout.
- Les
filtersont été supprimés ; utilisez des propriétés computed ou des méthodes à la place. - Plusieurs APIs d'événements renommées (
$listenersfusionné dans$attrs).
Le build de migration Vue vous aide à mettre à jour de manière incrémentale plutôt qu'en big-bang.
FAQ : Vue.js
Devrais-je apprendre Vue ou React en 2026 ?
Si vous avez une opportunité de travail pour l'un spécifiquement, apprenez celui-là. Sinon : React a plus de jobs mais est plus difficile ; Vue est plus facile et grandit rapidement hors des États-Unis (surtout Asie et Europe). Connaître l'un rend l'apprentissage de l'autre beaucoup plus rapide.
Vue est-il toujours activement maintenu ?
Oui, très activement. Vue 3.4 est sorti fin 2023, 3.5 en 2024 avec des améliorations majeures de réactivité, et le travail actif continue. Evan You a lancé VoidZero en 2024 pour commercialiser et accélérer tout l'écosystème Vue/Vite.
Composition API ou Options API ?
Pour les nouveaux projets en Vue 3, utilisez la Composition API avec <script setup>. C'est meilleur pour la réutilisation de code, le support TypeScript et les composants complexes. L'Options API est toujours supportée et bien pour les composants plus simples ou les équipes qui l'utilisent déjà.
Vue peut-il faire du rendu côté serveur ?
Oui — via Nuxt (méta-framework complet) ou les APIs SSR propres de Vue (plus manuelles). Nuxt est le bon choix pour la plupart des apps SSR de production.
Vue est-il bon pour les apps mobiles ?
Oui via NativeScript-Vue (compile vers iOS/Android natif), Quasar (framework hybride basé sur Vue) ou Ionic Vue (web-tech-sur-natif). Pour le pur natif, l'écosystème React Native est plus mature.
Comment Vue gère-t-il TypeScript ?
Excellent dans Vue 3. Définissez les props avec defineProps<{...}>(), utilisez ref<Type>(), etc. La Composition API a été conçue avec TypeScript en tête. L'Options API a aussi un support TypeScript mais semble moins naturelle.
Comment LoadFocus se rapporte aux applications Vue
Les SPAs Vue dépendent de la livraison rapide des bundles JavaScript aux utilisateurs. La taille du bundle, la vitesse de rendu et la performance de transition de route affectent directement l'expérience utilisateur. Les tests de vitesse de site web LoadFocus valident les Core Web Vitals de votre app Vue depuis 30+ localisations. Les tests de charge valident que les endpoints API que vos composants Vue appellent tiennent sous trafic concurrent réaliste — particulièrement important pour les SPAs où une page peut émettre 10-30 appels API par changement de route.
Outils LoadFocus connexes
Mettez ce concept en pratique avec LoadFocus — la plateforme même qui propulse tout ce que vous venez de lire.