Intermédiaire
5 MIN

Comprendre les Custom States dans Bubble.io (Version simple)

Découvrez comment exploiter tout le potentiel des Custom States simples dans Bubble.io pour créer des applications dynamiques et optimisées.
Couverture blog post Illustration Custom States Bubble.io
Clement Ballion, expert Bubble.io & No code
Clément Ballion
Fondateur Emvpee & Expert Bubble.io.
Logo LinkedinPhone iconeMail icone
Syamak Azadeh, expert Bubble.io & No code
Syamak Azadeh
Ingénieur & Spécialiste Bubble.io.
Logo LinkedinPhone iconeMail icone

Les Custom States dans Bubble, c'est quoi ?

Les Custom States (ou États personnalisés) sont l'un des concepts les plus puissants mais souvent mal compris de Bubble.io. Contrairement aux données stockées en base de données, les Custom States sont des variables temporaires qui existent uniquement dans le navigateur de l'utilisateur pendant sa session active. Ils constituent un pilier fondamental pour créer des applications interactives et réactives sans avoir à constamment manipuler la base de données.

Dans cet article, nous allons explorer les Custom States en profondeur, les situer avec des cas d'usage précis et comprendre en quoi ils peuvent améliorer l'expérience utilisateur et optimiser les performances de vos applications Bubble.io.

Pourquoi utiliser des Custom States ?

Les Custom States présentent plusieurs avantages par rapport au stockage classique en base de données :

  1. Rapidité d'exécution : Les opérations sur les Custom States sont instantanées car elles s'exécutent côté client, sans communication avec le serveur
  2. Économie de ressources : Ils réduisent la charge serveur et la consommation de WU (Workload Units)
  3. Données temporaires : Parfaits pour stocker des informations qui n'ont pas besoin d'être permanentes
  4. Manipulation dynamique : Idéaux pour les changements d'interface en temps réel

🔑 Concept clé : Pensez aux Custom States comme à un tableau blanc temporaire où vous notez des informations pendant que vous travaillez, mais que vous effacez une fois la tâche terminée. Ils disparaissent au rafraîchissement de la page !

Custom States vs. Base de données : quelle différence ?

Avant d'aller plus loin, clarifions la distinction fondamentale entre les changements en Custom States et en base de données dans Bubble :

← Faites défiler horizontalement →
Custom States Base de données
Persistance Temporaire (session utilisateur) Permanente
Visibilité Uniquement l'utilisateur actuel Tous les utilisateurs (selon règles de confidentialité)
Vitesse Très rapide (côté client) Plus lent (appel serveur)
Consommation WU Non Oui
Utilisation idéale Données temporaires, UI dynamique Données à conserver, à partager
Survit au rafraîchissement Non Oui

Les différents types de Custom States dans Bubble

Bubble permet de créer plusieurs types de Custom States :

  1. Texte : Pour stocker des chaînes de caractères
  2. Nombre : Pour des valeurs numériques
  3. Oui/Non : Pour des valeurs booléennes
  4. Date : Pour stocker des dates et heures
  5. Liste de... : Pour stocker des collections d'éléments
  6. Objet : Pour stocker des structures de données complexes

Bannière EMVPEE

Besoin d'aide pour ton projet ?

On t'aide à comprendre le fonctionnement des Custom States.

  • Types d'utilisation
  • Meilleures pratiques
  • Optimisation performances

Comment créer et manipuler des Custom States

Création d'un Custom State

Pour créer un Custom State dans Bubble.io, c'est très simple. Pour cet exemple, nous allons l'appliquer à un bouton.

  1. Sélectionnez le bouton sur lequel vous souhaitez créer le Custom State
  2. Accédez à l'onglet "Custom States" dans le panneau de propriétés
  3. Cliquez sur "Add a new state"
  4. Nommez votre state (utilisez une convention de nommage claire)
  5. Choisissez le type de données
  6. Définissez une valeur initiale si nécessaire

Capture création Custom State Bubble.io
Capture création Custom State Bubble.io

💡 Astuce : Adoptez une convention de nommage cohérente pour vos Custom States. Par exemple, préfixez-les avec "cs" ou "state" pour les distinguer facilement des champs de base de données dans vos workflows.

Appliquer un Custom State

Pour modifier un Custom State, utilisez l'action "Set state" dans votre workflow :

  1. Créez un workflow (au clic du bouton)
  2. Ajoutez l'action "Set state"
  3. Sélectionnez l'élément et le state à modifier
  4. Définissez la nouvelle valeur
  5. N'oubliez pas de repasser le State en valeur initiale

3 cas d'utilisation pratiques des Custom States

1. Formulaires multi-étapes

Les formulaires multi-étapes constituent l'un des cas d'utilisation les plus courants pour les Custom States.

Exemple concret :

  • Créez un Custom State "étapeFormulaire" (type : nombre) avec une valeur initiale de 1
  • Créez plusieurs groupes correspondant à chaque étape du formulaire
  • Conditionnez l'affichage de chaque groupe en fonction de la valeur du state
  • Utilisez des boutons "Suivant" et "Précédent" pour modifier la valeur du state

⚠️ Note importante : L'idée ici est de stocker les données saisies dans des Custom States tout au long du processus, puis de les enregistrer en base de données uniquement à la dernière étape. Cela évite des appels serveur inutiles, de la consommation de WU et améliore l'expérience utilisateur.

2. Paniers d'achat

Les Custom States sont parfaits pour gérer un panier d'achat avant la finalisation d'une commande.

Exemple concret :

  • Créez un Custom State "panierItems" (type : liste de Produits)
  • Ajoutez une action "Ajouter à la liste" sur le bouton "Ajouter au panier"
  • Affichez le contenu du panier et calculez le total dynamiquement
  • Sauvegardez en base de données uniquement lors de la validation finale

💡 Astuce pratique : Pour gérer les quantités, vous pouvez soit ajouter plusieurs fois le même produit à la liste, soit créer un Custom State de type objet qui stocke le produit et sa quantité.

3. Interface utilisateur conditionnelle

Adaptez l'apparence et le comportement de votre interface en fonction des actions de l'utilisateur.

Exemple concret : (Basculer rapidement entre 2 interfaces)

  • Construisez vos 2 interfaces sur votre page, rassemblez-les dans un groupe "Groupe_interfaces"
  • Créez un Option Set : "Type d'interface" / avec les 2 types d'interfaces (Disons "Interface 1" et "Interface 2")
  • Créez un Custom State sur le groupe des interfaces - Nom="Interface" (type : l'Option Set créé)
  • Créez un Repeating Group qui affiche les fields de l'Option sets ("Interface 1" et "Interface 2")
  • Créez un Workflow au clic des textes dans le Repeating group : When text is clicked > Set state of "Groupe_interfaces" > Current Cell "Type d'interface"
  • Créez des valeurs conditionnelles sur chacune de vos interfaces pour afficher ou cacher en fonction du type d'interface qui est choisi (+ Collapse when hidden).

🔥 Découvrez notre Tips & Tuto sur le sujet : Comment changer d'interface avec un Custom State

Optimisation des performances avec les Custom States

L'utilisation stratégique des Custom States peut considérablement améliorer les performances de votre application Bubble.io :

  1. Réduction des appels serveur : En stockant temporairement les données côté client, vous diminuez le nombre d'interactions avec le serveur
  2. Économie de WU : Les manipulations de Custom States ne consomment pas de Workload Units, contrairement aux opérations de base de données
  3. Réactivité accrue : Les changements d'interface basés sur les Custom States sont instantanés

💡 Insight performance : Sur un formulaire multi-étapes complexe, l'utilisation de Custom States pour stocker les données intermédiaires peut réduire la consommation de WU jusqu'à 80% par rapport à une sauvegarde à chaque étape !

Erreurs courantes et comment les éviter

1. Oublier que les Custom States sont éphémères

🔴 Problème : Perte de données au rafraîchissement de la page.

Solution : Utilisez le localStorage (via le plugin du même nom) ou la base de données pour les données qui doivent persister.

2. Créer trop de Custom States

🔴 Problème : Code difficile à maintenir et à déboguer.

Solution : Utilisez des objets pour regrouper les states liés (ex: un objet "filtres" plutôt que plusieurs states séparés).

3. Confusion entre états de page et états de groupe

🔴 Problème : States inaccessibles ou comportement inattendu.

Solution : Créez les states au niveau approprié et utilisez la référence correcte (cette page vs groupe parent).

4. Ne pas initialiser les Custom States

🔴 Problème : Erreurs JavaScript lorsque vous essayez d'accéder à un state non initialisé.

Solution : Toujours définir une valeur par défaut appropriée.

Conclusion

Les Custom States sont l'un des outils les plus puissants de Bubble.io pour créer des applications dynamiques et performantes. En maîtrisant leur utilisation, vous pouvez considérablement améliorer l'expérience utilisateur et optimiser les performances de vos applications.

N'hésitez pas à expérimenter avec différentes approches et à combiner les Custom States avec d'autres fonctionnalités de Bubble pour créer des interactions riches et complexes !

Pour aller plus loin...

Nous ferons prochainement un deuxième article plus poussé sur l'utilisation des Custom States avancés...

Restez en alerte !

Bannière EMVPEE

Une idée d'application ?

On t'accompagne dans la création de ton App Bubble de A à Z.

  • Conception sur mesure
  • Intégrations API
  • Optimisation performances
  • Formation de prise en main

Les derniers articles de Blog Bubble.io

Retrouvez nos derniers articles sur Bubble et ne manquez pas les suivants !

Tous les Articles