Cours 05 - Vue.js - Liaisons de données et directives

Objectifs

Déroulement

Introduction à Vue.js

vuejs-logo

Vue.js 3 : Qu'est-ce que c'est ?

Utilité

Avantages

  1. Performance améliorée : Optimisation des performances pour les applications complexes.
  2. Composition API : Meilleure réutilisation et organisation de la logique.
  3. Meilleur support du TypeScript : Amélioration de l'intégration pour les projets TypeScript.
  4. Plus léger : Optimisations pour un framework plus efficace.
  5. Flexibilité et modularité : Choix entre l'API Options et l'API Composition.

Inconvénients

  1. Courbe d'apprentissage pour l'API Composition : Peut sembler complexe au début.
  2. Migration : Défis lors de la migration vers Vue.js 3 pour les projets existants.
  3. Moins à la mode : React est la librairie la plus utilisée sur le marché du travail

API Options VS API Composition

Il y a deux manières d'utiliser l'API de Vue.js, l'API Options et L'API Composition.

API Options

L'API Options est une approche que vous pourriez connaître si vous avez déjà travaillé avec Vue.js 2. Elle est appelée ainsi parce que vous structurez votre composant en passant un objet "options" à Vue. Cet objet contient différentes options comme data, methods, props, computed, watch, etc. Chaque option a un rôle spécifique dans la définition du comportement du composant.

Avantages :

API Composition

Introduite avec Vue.js 3, l'API Composition offre une alternative flexible à l'API Options. Au lieu de définir un composant par options, vous utilisez des fonctions pour réutiliser la logique à travers différents composants. Cela est rendu possible grâce à une nouvelle fonctionnalité appelée "Composition API", incluant ref, reactive, computed, watch, et setup.

Avantages :

Quand utiliser l'une ou l'autre ?

En somme, l'API Composition est comme un ensemble d'outils modulaires pour construire la logique d'application, offrant plus de flexibilité et de contrôle, tandis que l'API Options fournit un cadre structuré et intuitif pour définir les composants. Le choix entre les deux dépend de vos besoins spécifiques en termes de complexité de l'application et de préférences personnelles en matière de développement.

Pour le cours nous allons utiliser l'API Composition!

En résumé

Liens utiles

Atelier 05 - Vue.js - Liaisons de données et directives

Prérequis

Vidéo de démonstration

Écoutez la vidéo en faisant l'atelier 05

Partie 01 - Installation et démarrage

Nous allons utiliser Vite pour créer notre projet Vue avec Typescript
Documentation officielle

Vérifier node

Démarrer un projet vue.js

Aller dans le répertoire de l'app

cd my-app

Installer les dépendances

Rouler le serveur

npm run dev    

Allez tester le serveur en cliquant sur le lien fourni

Partie 02 - Exploration et création de composants

Documentation officielle

Exploration des fichiers

index.html
la div ou notre application va être "monté"

<div id="app"></div>

l'importation d'un module JavaScript nommé main

<script type="module" src="/src/main.ts"></script>

main.ts

App.vue
Il y a 3 sections => script, template, style

On va effacer le contenu des trois sections pour partir de zéro!

Création de composants

Les composants nous permettent de fractionner l'UI en morceaux indépendants et réutilisables, sur lesquels nous pouvons réfléchir de manière isolée. Il est courant pour une application d'être organisée en un arbre de composants imbriqués.
Documentation officielle

Se créer un nouveau composant

Ouvrir le fichier Timeline.vue

Importer notre nouveau composant

Importation de BootStrap dans le projet:

Retour dans Timeline.vue pour améliorer l'affichage

Retour dans App.vue

Partie 03 - Les directives

Lisez ces 4 directives, car on va s'en servir

Liaison de classes et de styles (v-bind)

La liaison de données consiste à manipuler la liste des classes et les styles CSS inline d'un élément. Puisque class et style sont tous les deux des attributs, nous pouvons utiliser v-bind pour leur attribuer dynamiquement une valeur de chaîne, un peu comme avec les autres attributs. Cependant, essayer de générer ces valeurs à l'aide de la concaténation de chaînes peut être ennuyeux et sujet aux erreurs. Pour cette raison, Vue fournit des améliorations spéciales lorsque v-bind est utilisé avec class et style. En plus des chaînes, les expressions peuvent également évaluer des objets ou des tableaux
Documentation officielle

Rendu conditionnel (v-if, v-else, etc.)

La directive v-if est utilisée pour restituer conditionnellement un bloc. Le bloc ne sera rendu que si l'expression de la directive retourne une valeur évaluée à vrai.
Documentation officielle

Rendu de liste (v-for)

Nous pouvons utiliser la directive v-for pour rendre une liste d'items basée sur un tableau. La directive v-for nécessite une syntaxe spéciale de la forme item in items, où items est le tableau de données source et item est un alias pour l'élément du tableau sur lequel on itère.
Documentation officielle

Gestion d'événement

Nous pouvons utiliser la directive v-on, que nous raccourcissons généralement par le symbole @, pour écouter les événements DOM et exécuter du JavaScript lorsqu'ils sont déclenchés. L'utilisation serait alors v-on:click="handler" ou avec le raccourci, @click="handler".
Documentation officielle

On continue l'atelier...
De retour dans Timeline.vue on va travailler les directives v-for, v-bind et v-on

Dans script

Dans template

On va ajouter un événement avec v-on.

De retour dans script

Dans template

Remise

Aucune remise pour cet atelier, mais conservez-le car on va s'en servir pour l'exercice au prochain cours!