Démarrage rapide : Créer un composant bouton orchestrable
Dans React, nous rendons généralement un composant bouton de cette manière :
Bien que le code ci-dessus soit simple, il s'agit d'un composant statique et ne peut pas répondre aux besoins d'une plateforme sans code en matière de configurabilité et de capacités d'orchestration.
Dans le FlowEngine de NocoBase, vous pouvez rapidement créer des composants configurables et pilotés par les événements en utilisant FlowModel + FlowDefinition, ce qui permet d'obtenir des capacités sans code plus puissantes.
Première étape : Rendre le composant avec FlowModel
🧠 Concepts clés
FlowModelest le modèle de composant central du FlowEngine, encapsulant la logique, le rendu et les capacités de configuration des composants.- Chaque composant d'interface utilisateur peut être instancié et géré de manière uniforme via
FlowModel.
📌 Étapes de mise en œuvre
1. Créer une classe de modèle personnalisée
2. Créer une instance de modèle
3. Rendre avec <FlowModelRenderer />
Deuxième étape : Ajouter un PropsFlow pour rendre les propriétés du bouton configurables
💡 Pourquoi utiliser un PropsFlow ?
L'utilisation d'un Flow plutôt que de props statiques permet :
- Une configuration dynamique
- Une édition visuelle
- La relecture et la persistance de l'état
🛠 Modifications clés
1. Définir le Flow pour les propriétés du bouton
2. Utiliser stepParams au lieu des props statiques
✅ L'utilisation de
stepParamsest l'approche recommandée dans FlowEngine, car elle évite les problèmes liés aux données non sérialisables (comme les composants React).
3. Activer l'interface de configuration des propriétés
Troisième étape : Prendre en charge le flux d'événements du bouton (EventFlow)
🎯 Scénario : Afficher une boîte de dialogue de confirmation après avoir cliqué sur le bouton
1. Écouter l'événement onClick
Ajouter onClick de manière non intrusive
2. Définir le flux d'événements
Notes supplémentaires :
- L'EventFlow permet de configurer de manière flexible le comportement du bouton via un flux, par exemple pour afficher des boîtes de dialogue, des messages, ou effectuer des appels API.
- Vous pouvez enregistrer différents flux d'événements pour différents événements (comme
onClick,onMouseEnter, etc.) afin de répondre à des besoins métier complexes.
3. Configurer les paramètres du flux d'événements
Lors de la création du modèle, vous pouvez configurer les paramètres par défaut du flux d'événements via stepParams :
Comparaison des modèles : ReactComponent vs FlowModel
Le Flow ne modifie pas la manière dont les composants sont implémentés. Il ajoute simplement la prise en charge des PropsFlow et EventFlow à un ReactComponent, permettant ainsi de configurer et d'orchestrer visuellement les propriétés et les événements du composant.

ReactComponent
FlowModel
Résumé
Grâce aux trois étapes ci-dessus, nous avons créé un composant bouton qui prend en charge la configuration et l'orchestration d'év énements, offrant les avantages suivants :
- 🚀 Configuration visuelle des propriétés (comme le titre, le type, l'icône)
- 🔄 Les réponses aux événements peuvent être gérées par un flux (par exemple, un clic pour afficher une boîte de dialogue)
- 🔧 Prend en charge les extensions futures (comme la logique conditionnelle, la liaison de variables, etc.)
Ce modèle est également applicable à tout composant d'interface utilisateur, tel que les formulaires, les listes et les graphiques. Dans le FlowEngine de NocoBase, tout est orchestrable.

