Fichiers de configuration et stores
Fichiers de configuration et stores
Résumé rapide : Apprenez à centraliser les données avec les fichiers de configuration et gérer l'état réactif avec les stores pour un stockage persistant.
Introduction à la gestion des données
Ce tutoriel démontre comment utiliser les fichiers de configuration pour les valeurs statiques centralisées et les stores pour la gestion réactive et persistante des données dans votre application.
1. Bases des fichiers de configuration
Qu'est-ce qu'un fichier de configuration ?
Les fichiers de configuration permettent de centraliser des valeurs réutilisées dans toute votre application. Changez la valeur une fois, et elle se met à jour partout automatiquement.
Créer votre premier fichier de configuration
- Cliquez sur + pour ajouter un nouveau fichier de configuration
- Cliquez sur Key 0 pour le renommer (ex : "name")
- Définissez le Type : String
- Entrez une Valeur : ex. "mybilliondollarcompany"
Utiliser les valeurs de configuration dans les composants
- Créez un nouveau composant
- Ajoutez une variable et sélectionnez votre valeur de configuration
- Passez en Preview : La valeur s'affiche automatiquement
- Avantage clé : Cette valeur est maintenant centralisée et réutilisable
Utiliser la configuration en Visual Scripting
- Allez dans l'onglet Logic
- Ajoutez un nœud Get pour votre configuration (ex : "get new config")
- Décomposez l'objet pour accéder à ses propriétés
- Appuyez sur Ctrl + Espace pour vérifier la valeur
- Accédez à la propriété spécifique (ex : "name")
Tester la centralisation
- Retournez à votre fichier de configuration
- Changez la valeur (ex : de "mybilliondollarcompany" à "LunaPark")
- Retournez à votre composant
- Résultat : La valeur est automatiquement mise à jour partout où elle est utilisée
Cas d'usage : Parfait pour les noms d'applications, endpoints API, feature flags, ou toute valeur utilisée dans plusieurs composants.
2. Comprendre les stores
Qu'est-ce qui différencie les stores ?
Les stores sont comme des fichiers de configuration mais avec des capacités réactives et des options de persistance :
- Memory : Se réinitialise au rechargement de la page
- Session : Persiste dans le même onglet du navigateur
- Local : Persiste entre les rechargements et sessions (stocké sur l'ordinateur de l'utilisateur)
Limitations de portée du stockage
- Le stockage local est spécifique à l'ordinateur
- Les données ne se synchronisent pas entre différents navigateurs
- Les données restent uniquement dans le navigateur où elles ont été créées
3. Construire une to-do list avec les stores
Créer la structure du store
- Créez un nouveau store
- Ajoutez une propriété tasks de type : Array of Objects
- Définissez la structure de l'objet :
- icon : String ou emoji
- text : String
Comprendre les vues du store
- Côté gauche : Valeurs par défaut (état initial)
- Côté droit : Valeurs en temps réel (état actuel)
Définir les valeurs par défaut
- Ajoutez un objet de tâche par défaut :
- icon : "📝"
- text : "finish the tutorial"
- Cliquez sur Reset preview pour charger les valeurs par défaut
Différence clé avec les fichiers de configuration
Les stores sont réactifs : Quand vous changez une valeur, elle se met à jour partout instantanément.
4. Templates pour le rendu dynamique
Qu'est-ce que les templates ?
Les templates activent deux patterns de rendu puissants :
- Rendu conditionnel : Afficher du contenu seulement si une condition est vraie
- Rendu en boucle : Répéter du contenu pour chaque élément d'un tableau
Utiliser un template de type For
- Créez un composant
- Ajoutez un template de type : For
- Définissez la source de données sur le tableau tasks de votre store
- Résultat : Le template se répète pour chaque tâche
Accéder aux variables du template
Les templates génèrent automatiquement deux variables :
- Index : Position dans le tableau (0, 1, 2, etc.)
- Value : Les données de l'élément actuel
Afficher les données des tâches
- Dans le template, ajoutez un widget Card
- Ajoutez des éléments pour afficher :
- L'icône depuis
value.icon - Le texte depuis
value.text
- L'icône depuis
- Résultat : Chaque tâche s'affiche dans sa propre carte
5. Ajouter des tâches dynamiquement
Créer le formulaire de saisie
- Créez deux variables de composant :
- icon : String (pour l'emoji picker)
- text : String (pour le text input)
- Ajoutez un nouveau conteneur Card
- Dans la carte, ajoutez des éléments de formulaire :
- Emoji picker lié à la variable
icon - Text input lié à la variable
text - Button avec le label "Add task"
- Emoji picker lié à la variable
Améliorer la mise en page du formulaire
- Enveloppez les inputs dans un conteneur Flex
- Définissez la direction en horizontal
- Ajoutez un gap pour l'espacement entre les éléments
- Donnez au text input une largeur minimale
6. Implémenter la logique d'ajout de tâche
Configurer l'événement click
- Sélectionnez votre bouton "Add task"
- Ajoutez un événement Click
- Ouvrez l'éditeur de logique
Construire le flux d'ajout de tâche
- Ajoutez un nœud Get new store et décomposez-le
- Accédez à la propriété tasks
- Ajoutez un nœud Push pour ajouter au tableau
- Créez le nouvel objet de tâche :
- Ajoutez un nœud Create Object
- Ajoutez Get icon depuis le composant
- Ajoutez Get text depuis le composant
- Connectez l'objet créé au nœud Push
Optionnel : Réinitialiser les champs de saisie
Après l'ajout d'une tâche, réinitialisez le formulaire :
- Ajoutez un nœud Set icon avec une chaîne vide
- Ajoutez un nœud Set text avec une chaîne vide
- Résultat : Le formulaire se vide après chaque ajout de tâche
7. Tester le système complet
Ajouter votre première tâche
- Entrez un emoji (ex : ✈️)
- Entrez du texte : "Go to Canada"
- Cliquez sur Add task
- Résultat : La tâche apparaît instantanément dans la liste ci-dessous
Vérifier la persistance
- Ajoutez plusieurs tâches
- Appuyez sur F5 pour recharger la page
- Résultat : Toutes les tâches restent car nous utilisons le stockage local
- Important : Cela fonctionne uniquement dans le même navigateur sur le même ordinateur
Comprendre le flux réactif
- Les inputs du formulaire mettent à jour les variables du composant
- L'événement click déclenche la logique
- La logique pousse le nouvel objet dans le store
- Le template se re-rend automatiquement avec les nouvelles données
- Les champs du formulaire se réinitialisent à l'état vide
Concepts clés
Fichiers de configuration
- Valeurs statiques centralisées : Nom d'app, paramètres, constantes
- Source unique de vérité : Mettre à jour une fois, changer partout
- Pas de réactivité : Les valeurs ne changent pas pendant l'exécution
- Accès via nœud Get : Récupération simple dans la logique
Stores
- Stockage de données réactif : Les valeurs se mettent à jour partout automatiquement
- Trois modes de persistance : Memory, Session, Local
- Synchronisation temps réel : Les changements se reflètent immédiatement
- État persistant : Les données survivent aux rechargements de page (avec stockage local)
Templates
- Boucles For : Rendre des listes dynamiquement
- Rendu conditionnel : Afficher/masquer selon des conditions
- Variables auto-générées : Index et value pour chaque itération
- Mises à jour réactives : Re-rendu quand les données changent
Persistance du stockage
- Memory : Temporaire, se réinitialise au rechargement
- Session : Par onglet, se réinitialise à la fermeture de l'onglet
- Local : Permanent dans le navigateur, survit aux rechargements
Bonnes pratiques
Choisir entre configuration et stores
- Utilisez les fichiers de configuration pour les valeurs statiques qui ne changent jamais à l'exécution
- Utilisez les stores pour les données qui changent selon les interactions utilisateur
- Utilisez les stores avec stockage local pour les données qui doivent persister entre les sessions
Conception de la structure des stores
- Planifiez votre schéma de données avant de créer le store
- Utilisez des noms de propriétés significatifs pour la clarté
- Gardez les stores focalisés sur des fonctionnalités spécifiques (ex : un store pour les tâches, un autre pour les paramètres utilisateur)
Optimisation des templates
- Utilisez les templates For pour les listes et tableaux
- Utilisez les templates If pour le contenu conditionnel
- Gardez le contenu du template simple pour de meilleures performances
- Accédez uniquement aux propriétés nécessaires de l'objet value
Stratégie de persistance des données
- Memory : Données de panier d'achat, état UI temporaire
- Session : Données de formulaire lors de processus multi-étapes
- Local : Préférences utilisateur, travail sauvegardé, to-do lists
Gestion des formulaires
- Toujours réinitialiser les inputs après soumission réussie
- Valider les données avant d'ajouter aux stores
- Fournir du feedback aux utilisateurs quand les actions se terminent
- Utiliser les types d'input appropriés (emoji picker pour les icônes, text input pour le texte)