Vue.jsVue.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. Vue a été créé par Evan You et est maintenu par lui et le reste des membres actifs de l'équipe principale travaillant sur le projet et son écosystème. Le framework est notamment utilisé par Adobe, Alibaba et GitLab[3]. PrésentationVue présente une architecture progressivement adoptable qui se concentre sur le rendu déclaratif et la composition des composants. Les fonctionnalités avancées requises pour les applications complexes telles que le routage, la gestion d'état et les outils de construction sont offertes par le biais de bibliothèques et de paquets officiellement maintenus[4], Nuxt.js étant l'une des solutions les plus populaires. Vue permet d'étendre le HTML avec des attributs HTML appelés directives[5]. Les directives offrent des fonctionnalités aux applications HTML, et sont soit intégrées soit définies par l'utilisateur. Vue.js requiert un environnement avec Node.js pour fonctionner[5]. HistoriqueVue a été créé par Evan You après avoir travaillé pour Google en utilisant AngularJS dans un certain nombre de projets. Il a ensuite récapitulé son processus de réflexion : Je me suis dit : « Et si je pouvais juste extraire la partie que j'aime vraiment dans Angular et construire quelque chose de vraiment léger »[6]. Le premier commit de code source du projet était daté de , et Vue a été publié pour la première fois en février suivant, en 2014. FonctionnalitésComposantsLes composants Vue étendent les éléments HTML de base pour encapsuler du code réutilisable. Il s'agit donc d'éléments personnalisés auxquels le compilateur de Vue attache un comportement. Dans Vue, un composant est essentiellement une instance de Vue avec des options prédéfinies[7]. L'extrait de code ci-dessous contient un exemple de composant Vue. Le composant représente un bouton de base HTML et affiche le nombre de fois où le bouton est cliqué : <div id="tuto">
<button-clique v-bind:compte-initial="0"></button-clique>
</div>
<script>
Vue.component('button-clique', {
props: [ "compteInitial" ],
data: () => ({
compte: 0,
}),
template: `<button v-on:click="auClic">Cliqué {{ compte }} fois</button>`,
computed: {
compteFoisDeux() {
return this.compte * 2;
}
},
watch: {
compte(nouvelleValeur, ancienneValeur) {
console.log(`La valeur de compte est changée de ${ancienneValeur} en ${nouvelleValeur}.`);
}
},
methods: {
auClic() {
this.compte += 1;
}
},
mounted() {
this.compte = this.compteInitial;
}
});
new Vue({
el: '#tuto',
});
</script>
TemplatesVue utilise une syntaxe de template basée sur HTML qui permet de lier le DOM rendu aux données de l'instance Vue sous-jacente. Tous les templates Vue sont du HTML valide qui peut être analysé par des navigateurs conformes aux spécifications et des analyseurs syntaxiques HTML. Vue compile les templates dans des fonctions de rendu de DOM virtuel. Un template d'objet de document virtuel (ou DOM) permet à Vue de rendre les composants dans sa mémoire avant de mettre à jour le navigateur. Combiné avec le système de réactivité, Vue est capable de calculer le nombre minimal de composants pour lesquels le rendu doit être ré-effectué et ainsi d'appliquer le nombre minimal de manipulations DOM lorsque l'état de l'application change. Les utilisateurs de Vue peuvent utiliser la syntaxe des templates ou choisir d'écrire directement des fonctions de rendu en utilisant JSX. Les fonctions de rendu permettent de construire des applications à partir de composants logiciels. RéactivitéVue est doté d'un système de réactivité qui utilise des objets JavaScript simples et un re-rendu optimisé. Chaque composant garde une trace de ses dépendances réactives pendant son rendu, de sorte que le système sait précisément quand et sur quels composants il faut ré-effectuer le rendu[8]. TransitionsVue offre diverses façons d'appliquer les effets de transition lorsque des éléments sont insérés, mis à jour ou retirés du DOM. Cela inclut des outils pour :
C'est ce qui se produit lorsqu'un élément enveloppé dans un composant de transition est inséré ou retiré :
RoutageVue fournit une interface permettant de modifier ce qui est affiché sur la page en fonction du chemin d'accès de l'URL actuelle, quelle que soit la manière dont elle a été modifiée (par un lien envoyé par courrier électronique, un rafraîchissement ou des liens dans la page). De plus, l'utilisation d'un routeur frontal permet de faire une transition intentionnelle du chemin du navigateur lorsque certains événements du navigateur (c'est-à-dire les clics) se produisent sur des boutons ou des liens. Vue lui-même n'est pas livré avec un routage haché côté frontal. Mais la bibliothèque open source vue-router fournit une API pour mettre à jour l'URL de l'application, prend en charge le bouton retour (historique de navigation) du navigateur, ainsi que les réinitialisations de mots de passe ou les liens de vérification de courrier électronique avec des paramètres d'URL d'authentification. Cette bibliothèque prend en charge le mappage de routes imbriquées vers des composants imbriqués et offre un contrôle fin des transitions. Avec Vue, les développeurs composent déjà des applications avec de petits blocs de construction qui construisent des composants plus importants. Avec Vue-router ajouté au mélange, les composants doivent simplement être mappés aux routes auxquelles ils appartiennent, et les routes parentes/racines doivent indiquer où les enfants doivent être rendus. <div id="app">
<router-view></router-view>
</div>
...
<script>
...
const Utilisateur = {
template: '<div>Utilisateur {{ $route.params.id }}</div>'
}
const routeur = new VueRouter({
routes: [
{ path: '/utilisateur/:id', component: Utilisateur }
]
})
...
</script>
Le code ci-dessus :
<div id="app">
<div>
<div>Utilisateur 1</div>
</div>
</div>
ÉcosystèmeLa bibliothèque de base est fournie avec des outils et des bibliothèques développés par l'équipe et les contributeurs. Outils officiels
Bibliothèques officielles
Voir aussiNotes et références
Liens externes |
Portal di Ensiklopedia Dunia