Script visuel
Visual Script
Events
Store
Implémenter la logique interactive : événements click et création dynamique de cartes et tâches.
Premiers pas avec une vraie app (Épisode 4)
Retour à l'Académie
Visual Scripting
Résumé express : Implémenter la logique interactive avec visual scripting : événements click, gestion du store et création dynamique de cartes et tâches.
Introduction au Visual Scripting
Nous avons maintenant une belle interface, mais elle n'est pas interactive. Il est temps d'ajouter la logique pour pouvoir créer des cartes et des tâches grâce au visual scripting.
1. Créer un événement click
Ajouter l'événement sur le bouton "Ajouter une tâche"
- Aller dans le composant Card
- Sélectionner le div du bouton d'ajout de tâche
- Dans le panel de droite, cliquer sur Events puis le "+"
- Choisir l'événement Click
- Renommer le div en "add card" pour plus de clarté
Accéder à la logique
- Cliquer sur l'événement ou aller dans l'onglet Logic
- L'événement apparaît comme "onclick (add card)"
2. Comprendre le système de visual scripting
Types de blocs et connexions
- Blocs d'exécution : fil blanc qui définit l'ordre d'exécution
- Blocs de données : fils colorés selon le type
- Jaune : chaîne de caractères (string)
- Vert : nombre (number)
- Rouge : booléen (boolean)
- Bleu : objet (object)
- Carré : tableau du type correspondant
Exemple de test
- Créer un bloc Log
- Le connecter à l'événement onclick avec le fil blanc
- Ajouter du texte : "hello"
- Tester avec clic droit → Execute pour voir l'animation
- Prévisualiser : cliquer sur "add card" affiche "hello" dans la console
3. Récupérer et manipuler les propriétés
Accéder aux propriétés du composant
- Clic droit → taper "get"
- Sélectionner "get tasks" ou "get title"
- Ces blocs récupèrent les propriétés définies dans le composant
Ajouter une tâche avec Push
- Utiliser le bloc Push pour ajouter un élément à un tableau
- Connecter get tasks à l'entrée tableau du bloc Push
- Dans "value", écrire "nouvelle tâche"
- Connecter l'onclick au bloc Push
- Tester : chaque clic ajoute une nouvelle tâche
4. Créer le système d'ajout de cartes
Modifier le composant CreateButton
Le bouton doit avoir deux états :
- État normal : bouton "Ajouter une carte"
- État édition : input text + boutons validation/annulation
Créer la variable d'état
- Ajouter une variable isEditing (boolean) dans CreateButton
- Wraper le bouton dans un Template
- Condition : afficher si
isEditing = false
Créer l'interface d'édition
- Ajouter un second Template avec condition
isEditing = true - Insérer un Text Input depuis UI Library
- Ajouter deux icons : validation (check) et annulation (cross)
- Styliser avec display flex et align-items center
5. Logique de basculement d'état
Passer en mode édition
- Ajouter un événement click sur le bouton "Ajouter une carte"
- Dans Logic, utiliser Set isEditing à
true
Gérer la saisie de texte
- Créer une variable title (string) dans CreateButton
- Sur le Text Input, définir v-model =
title - Afficher les icônes seulement si
title ≠ empty(Template avec condition)
6. Validation et annulation
Événement de validation (check)
- Ajouter un click sur l'icône de validation
- Récupérer la valeur avec get title
- Tester avec un Log pour vérifier la récupération
Événement d'annulation (cross)
- Ajouter un click sur l'icône d'annulation
- Utiliser Set title avec une chaîne vide
- Le champ se vide automatiquement grâce au v-model
7. Créer une carte dans le store
Comprendre la structure de données
Une carte contient :
- title : string
- tasks : tableau de strings
Récupérer les données du store
- Utiliser get store pour accéder aux données globales
- Utiliser spread pour décomposer l'objet et récupérer la liste des cartes
- Le spread permet d'extraire les propriétés d'un objet
Ajouter la nouvelle carte
- Utiliser Push sur la liste des cartes du store
- Créer un Create Object de type CardType
- Connecter get title au champ title de l'objet
- Laisser tasks comme tableau vide
- Connecter le tout à l'événement de validation
Réinitialiser l'interface
Après création de la carte :
- Set title à vide
- Set isEditing à
false
Concepts avancés
Le spread operator
- Permet de décomposer un objet pour accéder à ses propriétés
- Exemple :
store.cardsdevient accessible via spread du store - Peut s'enchaîner pour accéder aux propriétés imbriquées
Raccourcis utiles
- Ctrl + Space : voir la valeur de chaque élément
- Ctrl + Alt : voir le type attendu par chaque connexion
- Clic droit + Execute : tester l'exécution avec animation
Résultat final
L'application permet maintenant de :
- Ajouter des tâches dans les cartes existantes
- Créer de nouvelles cartes avec un titre personnalisé
- Toutes les données sont sauvegardées dans le store
Prochainement : Les variables computed pour une expérience utilisateur fluide et agréable.