Affichage dynamique
Store
Types
Templates
Créer des types de données, configurer le store et utiliser les boucles pour afficher dynamiquement les cartes.
Premiers pas avec une vraie app (Épisode 3)
Retour à l'Académie
Affichage dynamique
Résumé express : Créer des types de données, configurer le store global et utiliser les boucles pour afficher dynamiquement les cartes et tâches.
Problématique : Scalabilité des composants
Actuellement, nous avons seulement deux cartes dans notre application. Si nous en avions 10, il ne serait pas pratique de placer 10 composants manuellement. Nous devons créer une liste de cartes accessible partout dans l'application.
1. Définir les types de données
Créer le type CardType
- Clic droit → New → Type
- Nommer le type CardType
- Définir la structure :
- Type : Card
- Structure : Object (car une carte a plusieurs propriétés)
Propriétés du type Card
- title : string (le titre de la carte)
- tasks : array of strings (liste des tâches)
Cette structure définit le "schéma" qu'aura chaque carte dans notre application.
2. Configurer le store global
Créer la structure de données
- Aller dans le Store
- Redéfinir le schéma :
- Nom : cards (avec un S pour le pluriel)
- Type : Array de CardType
Initialiser les données par défaut
Remplir le store avec des données d'exemple :
Carte 1 - "À faire" :
- title: "À faire"
- tasks: ["tâche 1", "tâche 2"]
Carte 2 - "En cours" :
- title: "En cours"
- tasks: [] (aucune tâche)
Carte 3 - "Terminé" :
- title: "Terminé"
- tasks: ["tâche 3", "tâche 4", "tâche 5"]
Tester le store
- Cliquer sur Reset to Store dans l'onglet Preview
- Le preview affiche maintenant les données du store par défaut
3. Affichage dynamique des cartes
Transformer l'affichage statique en boucle
- Retourner sur la page Main
- Clic droit sur une carte → Wrap in component
- Choisir Template
Configurer la boucle
- Dans le Template, sélectionner For (pour une boucle)
- Définir l'itération sur cards (données du store)
- Passer le Preview de Once à All pour voir toutes les cartes
Connecter les données dynamiques
- Sélectionner le composant Card
- Modifier la propriété title :
template.value.title - Les titres se mettent à jour automatiquement
4. Affichage dynamique des tâches
Ajouter la propriété tasks au composant Card
- Aller dans le composant Card
- Ajouter une nouvelle propriété :
- Nom : tasks
- Type : array of strings
- Valeurs par défaut : ["tâche 1", "tâche 2"]
Créer une boucle pour les tâches
- Dans le composant Card, sélectionner la zone des tâches
- Wrap in component → Template
- Configurer une boucle For sur la propriété tasks
- Passer le Preview en mode All
Rendre le contenu des tâches dynamique
- Sélectionner le texte d'une tâche
- Remplacer le texte fixe par une variable :
{taskName} - Créer la propriété taskName liée à
template.value - Les tâches s'affichent maintenant dynamiquement
5. Connecter tout ensemble
Lier les cartes aux données du store
- Retourner sur la page Main
- Sélectionner le composant Card dans la boucle
- Modifier la propriété tasks :
template.value.tasks - Chaque carte affiche maintenant ses propres tâches
Tester l'affichage complet
- Reset to Store pour charger les données
- Les trois cartes s'affichent avec leurs titres et tâches respectifs
- Ajouter une carte dans le store pour tester la réactivité
Concepts clés
Les Types
- Définissent la structure des données
- Garantissent la cohérence dans toute l'application
- Permettent la validation automatique
Le Store
- Stockage global des données de l'application
- Source unique de vérité
- Permet la synchronisation entre composants
Les Templates avec boucles
- For : itère sur des tableaux ou objets
template.value: accède à l'élément courant de la boucle- Affichage dynamique basé sur les données
Preview modes
- Once : affiche un seul élément (pour le design)
- All : affiche tous les éléments (pour tester les boucles)
Avantages de cette approche
- Scalabilité : ajouter des cartes ne nécessite que de modifier le store
- Maintenance : une seule définition de carte pour toute l'app
- Cohérence : les types garantissent la structure des données
- Réactivité : les changements du store se reflètent automatiquement
Prochainement : Implémentation de la logique interactive pour ajouter et manipuler les cartes et tâches.