| 特性/能力 | React.Component | FlowModel |
|---|---|---|
| 渲染能力 | 是,render() 方法生成 UI | 是,render() 方法生成 UI |
| 状态管理 | 内建 state 和 setState | 使用 props,但状态管理更依赖模型树结构 |
| 生命周期 | 是,如 componentDidMount | 是,如 onInit、onMount、onUnmount |
| 用途 | 构建 UI 组件 | 构建数据驱动、流化、结构化的“模型树” |
| 数据结构 | 组件树 | 模型树(支持父子模型、多实例 Fork) |
| 子组件 | 使用 JSX 嵌套组件 | 使用 setSubModel/addSubModel 明确设置子模型 |
| 动态行为 | 事件绑定、状态更新驱动 UI | 注册/派发 Flow、处理自动流 |
| 持久化 | 无内建机制 | 支持持久化(如 model.save()) |
| 支持 Fork(多次渲染) | 否(需手动复用) | 是(createFork 多实例化) |
| 引擎控制 | 无 | 是,受 FlowEngine 管理、注册和加载 |
| 生命周期钩子 | React.Component | FlowModel |
|---|---|---|
| 初始化 | constructor、componentDidMount | onInit、onMount |
| 卸载 | componentWillUnmount | onUnmount |
| 响应输入 | componentDidUpdate | onBeforeAutoFlows、onAfterAutoFlows |
| 错误处理 | componentDidCatch | onAutoFlowsError |
React:
FlowModel:
| 功能 | 说明 |
|---|---|
registerFlow | 注册流 |
applyFlow / dispatchEvent | 执行/触发流 |
setSubModel / addSubModel | 显式控制子模型的创建与绑定 |
createFork | 支持一个模型逻辑被复用渲染多次(如表格每行) |
openFlowSettings | 流步骤设置 |
save / saveStepParams() | 模型可持久化,与后端打通 |
| 项目 | React.Component | FlowModel |
|---|---|---|
| 适合场景 | UI 层组件组织 | 数据驱动的流与区块管理 |
| 核心思想 | 声明式 UI | 模型驱动的结构化流 |
| 管理方式 | React 控制生命周期 | FlowModel 控制模型生命周期与结构 |
| 优势 | 丰富生态和工具链 | 强结构化、流可持久化、子模型可控 |
FlowModel 可以与 React 互补使用:在 FlowModel 中使用 React 渲染,而由 FlowEngine 管理其生命周期和结构。