Registration
Notions Requises
Component Local Registration
Énoncé
Transformez
l'
ex05_class_v2.vue
en en faisant un composant nommé Clock.vue lui-même intégré/utilisé
dans ex17_basic_comp.vue.
Props
Notions Requises
Props
Énoncé
Créez le composant BasicCard.vue et intégrez-le à ex18_prop01_static.vue
sachant que :
-
BasicCard.vue est paramétré par name de type String.
-
Dans l'exemple
ex18_prop01_static, on lui a envoyé la constante 'Goon'.
-
Dans l'exemple
ex18_prop02_default, on ne lui a rien envoyé.
-
Dans l'exemple
ex18_prop03_dyn, on lui envoie la valeur entrée dans l'input.
-
NB : l'
input se trouve dans ex18_prop03_dyn, pas dans BasicCard.
One Way
Notions Requises
One-Way Data Flow
Énoncé
L'exercice ex19_one_way est le parent d'un composant fils nommé OneWayTest.
Le parent envoie globalName en paramètre du fils (props name).
Dans l'exemple, globalName et name sont mises dans des input.
Rappel : un composant n'est pas censé modifier la valeur des props qu'il reçoit.
(donc ici name ne devrait pas être dans un input)
On peut constater que si une modification de globalName a bien un effet sur name,
la modification de name n'a quant à elle aucun effet sur globalName.
v-for
Énoncé
Le but de ex20_for_comp.vue est de démontrer qu'il est possible d'instancier plusieurs fois
un composant.
Dans cet exercice, on crée un composant Country paramétré par country.
Plusieurs instances de Country sont créées dynamiquement en parcourant
le tableau fourni par sample_countries.js.
Events
Notions Requises
Component Events
Énoncé
L'exemple ex21_comp_event utilise le mécanisme d'évènements de composants de vue.
Cet exemple met en oeuvre le (sous-)composant TextInput tel que :
-
TextInput demande à l'utilisateur d'entrer une chaine
avec une longueur minimale définie par un paramètre min (type Number,
valeur par défaut = 10, valeur envoyée ici = 5).
-
Le bouton
Clear permet de vider l'input.
-
Tant que la chaine n'a pas la longueur
min, l'input est "rouge", et la chaine ne
peut pas être validée.
-
Quand la longueur
min est atteinte, l'input change de couleur et permet la validation
par un appui sur la touche ENTREE. Cette action a pour effet d'envoyer un évènement
au parent ex21_comp_event qui met alors à jour son affichage du texte validé.
TP02
Énoncé
Réalisez la page ci-dessous.
Quelques remarques à prendre en compte :
-
Cette page ressemble au TP 01, MAIS elle DOIT cette fois être créée sous forme d'une
application
tp02_v1.vue qui intègre les 2 composants UserCard.vue
ET UserForm.vue !
-
Représentez l'utilisateur en utilisant la classe
User définie dans
User.js
-
Les boutons ne font pas partie des composants
UserForm.vue
ou UserCard.vue.
-
Testez bien tout pour voir ce qu'il faut faire !
Version 2
On va maintenant encapsuler ce qui a été fait en ce début de TP 02
dans un "gros" composant qui possèdera de plus une entête fournie par un nouveau composant nommé Menu.vue.
Quelques remarques à prendre en compte :
-
Vous remarquerez que
Menu affiche le nick de l'utilisateur. Cependant,
faites bien attention au fait que cette information n'est mise à jour que lorsqu'on l'a modifiée
ET enregistrée en cliquant sur le bouton éponyme !
-
Cette version continue d'utiliser
UserCard et UserForm.
-
Le bouton "Effacer" a été remplacé par "Reset" : vous noterez
que son effet a changé aussi -> il réinitialise l'utilisateur avec les valeurs correspondant
au dernier enregistrement !
Slots
Notions Requises
Slots
Énoncé
L'exercice ex22_comp_slots.vue à re-créer utilise le composant PostIt qui :
-
est paramétré par une props
bg qui fournit la couleur d'arrière plan du post-it
-
possède 2 slots : le slot par défaut et un slot
title permetant d'envoyer
le contenu d'un titre pour le post-it (dans l'exemple, le post-it jaune a le titre Courses)
ex22_comp_slots>
TP 03
Le but de ce TP est de créer une page qui utilise 2 composants spécifiques :
-
Un composant nommé
Spoiler qui, comme son nom l'indique, permet d'intégrer dans la page
des composants qui affichent un bouton spoiler à la place d'un texte spécifique, ce
texte n'étant visible qu'une fois qu'on a cliqué sur le bouton correspondant.
-
Un composant nommé
NavItem qui génère une ancre autour d'un texte : le texte affiché
est le contenu de la balise du composant (lors de son insertion) et le lien correspond au paramètre
du composant nommé href.
Pour réaliser cette application, vous sont fournis :
-
Un fichier nommé
template.html qui contient le template de l'application :
CE FICHIER NE DOIT PAS ÊTRE MODIFIÉ !
-
Les images utilisées pour les fonds des entête, contenu et pied de page.
Ces fichiers sont contenus dans l'archive
tp03_ressources.zip.
Quelques remarques à prendre en compte :
-
Le fichier
template.html NE DOIT PAS ÊTRE MODIFIÉ ! (oui... j'insiste...)
Il vous faut donc vous baser sur son contenu pour créer l'application.
-
Vous devez créer du CSS pour que tout s'affiche comme dans la démo ci-dessous.
-
Les balises
spoiler sont déjà présentes dans le template.
-
Vous aurez remarqué que la liste des
nav-item composant la navbar
est générée dynamiquement à partir d'une variable titles.
Cette variable DOIT elle-même être construite dynamiquement à partir des id
et h1 contenus dans les articles du template de l'application.
(pas de texte & id "en dur" dans le script de l'application SVP).
Résultat attendu.
--> Attention à la mise en forme <--
NB: Ce TP est une version Vue du TP Javascript donné
ici.
TP04 (Router)
Notions Requises
Routing
Énoncé
Ouvrez le TP04 dans une nouvelle fenêtre pour bien voir la barre d'adresse.
Reproduisez le site en utilisant Vue Router et en faisant attention à ce que les
affichages correspondent au chemin dans l'adresse affichée.
Vous aurez à nouveau besoin de
sample_countries.js.