Aller au contenu
EN FR

Composants web réactifs

Statut documentaire : guide — voir Maturité et preuves.

Un composant web est l’incarnation web d’un composant UXfc/fonctionnel déclaré. Il doit préserver les mêmes frontières : se lier aux surfaces de données de page, émettre des événements sémantiques locaux et ne franchir les frontières provider/serveur que via des règles d’escalade déclarées.

Contrat

Documenter chaque composant réutilisable avec : nom fonctionnel ; entrées et surfaces de données liées ; état local ; événements émis ; règles d’escalade ; états loading/error/offline ; actions qu’il peut demander. Ce contrat doit rester stable même si l’implémentation de rendu change.

Flux de données

provider / collection
 -> cache DataSet
 -> DataSource ou DataCursor
 -> props/état réactif
 -> rendu du composant

Le composant s’abonne à la surface de page ; il ne doit pas posséder directement le protocole provider ni la transaction de persistance.

État local versus état du modèle

Onglet sélectionné, panneau ouvert, filtre temporaire, texte d’autocomplétion en cours, dropdown ouvert, loading local et valeurs similaires sont de l’état UI local. Elles ne doivent pas devenir silencieusement des attributs conceptuels ou des changements persistés.

Exemples d’escalade

TabSelected reste normalement local. CurrentRowChanged met normalement à jour le contexte local. FilterTextChanged peut être debouncé avant lookup. SearchRequested peut requêter un provider. SaveRequested doit invoquer une action applicative/publiée ou une mise à jour provider. ValidationRequested peut déclencher une action métier ou un processus.

Discipline de performance

Debouncer et batcher les interactions visuelles fréquentes. Les commandes distantes devraient être idempotentes quand c’est possible. Le PageModel, et non le composant, décide quand un événement franchit la frontière Runtime ou service.