In React, we usually render a button component like this:
Although the code above is simple, it's a static component and cannot meet the needs of a no-code platform for configurability and orchestration capabilities.
In NocoBase's FlowEngine, we can quickly build components that support configuration and are event-driven using FlowModel + FlowDefinition, achieving more powerful no-code capabilities.
FlowModel is the core component model in FlowEngine, encapsulating component logic, rendering, and configuration capabilities.FlowModel.<FlowModelRenderer />Using Flow instead of static props allows for:
stepParams instead of static props✅ Using
stepParamsis the recommended approach in FlowEngine, as it avoids issues with non-serializable data (like React components).
Add onClick in a non-intrusive way
Additional Notes:
onClick, onMouseEnter, etc.) to meet complex business requirements.When creating the model, you can configure the default parameters for the event flow via stepParams:
Flow does not change how components are implemented. It simply adds support for PropsFlow and EventFlow to a ReactComponent, allowing the component's properties and events to be configured and orchestrated visually.

Through the three steps above, we have completed a button component that supports configuration and event orchestration, with the following advantages:
This pattern is also applicable to any UI component, such as forms, lists, and charts. In NocoBase's FlowEngine, everything is orchestratable.