Skip to content
EN FR

Web reactive components

Documentation status: guide — see Maturity and evidence.

A web component is the web incarnation of a declared UXfc/functional component. It should preserve the same boundaries as other view implementations: bind to page data surfaces, emit local semantic events, and cross provider/server boundaries only through declared escalation rules.

Contract

Document each reusable component with: functional name; inputs and bound data surfaces; local state; emitted events; escalation rules; loading/error/offline states; and the actions it may request. This contract should remain stable even if the concrete rendering implementation changes.

Data flow

provider / collection
 -> DataSet cache
 -> DataSource or DataCursor
 -> reactive props/view state
 -> component render

The component should subscribe to the page data surface, not directly own the provider protocol or persistence transaction.

Local state versus model state

Selected tab, expanded panel, temporary filter text, pending autocomplete text, dropdown state, local loading state and similar values are local UI state. They must not silently become conceptual attributes or persisted model changes.

Escalation examples

TabSelected normally stays local. CurrentRowChanged normally updates the local view context. FilterTextChanged may be debounced before a lookup. SearchRequested may query a provider. SaveRequested should invoke an application/published action or provider update. ValidationRequested may trigger a business action or process.

Performance discipline

Debounce and batch high-frequency visual interactions. Remote commands should be idempotent where possible. The page model, not the component, decides when an event must cross the Runtime or service boundary.