FlowModel vs React.Component

基本职责对比

特性/能力React.ComponentFlowModel
渲染能力是,render() 方法生成 UI是,render() 方法生成 UI
状态管理内建 statesetState使用 props,但状态管理更依赖模型树结构
生命周期是,如 componentDidMount是,如 onInitonMountonUnmount
用途构建 UI 组件构建数据驱动、流化、结构化的“模型树”
数据结构组件树模型树(支持父子模型、多实例 Fork)
子组件使用 JSX 嵌套组件使用 setSubModel/addSubModel 明确设置子模型
动态行为事件绑定、状态更新驱动 UI注册/派发 Flow、处理自动流
持久化无内建机制支持持久化(如 model.save()
支持 Fork(多次渲染)否(需手动复用)是(createFork 多实例化)
引擎控制是,受 FlowEngine 管理、注册和加载

生命周期对比

生命周期钩子React.ComponentFlowModel
初始化constructorcomponentDidMountonInitonMount
卸载componentWillUnmountonUnmount
响应输入componentDidUpdateonBeforeAutoFlowsonAfterAutoFlows
错误处理componentDidCatchonAutoFlowsError

构建结构对比

React:

class MyComponent extends React.Component {
  render() {
    return <div>Hello</div>;
  }
}

FlowModel:

class HelloModel extends FlowModel {
  render() {
    return <div>Hello</div>;
  }
}

组件树 vs 模型树

  • React 组件树:运行时 JSX 嵌套形成的 UI 渲染树。
  • FlowModel 模型树:由 FlowEngine 管理的逻辑结构树,可持久化、动态注册和控制子模型,适合构建页面区块、操作流、数据模型等。

特殊功能(FlowModel 特有)

功能说明
registerFlow注册流
applyFlow / dispatchEvent执行/触发流
setSubModel / addSubModel显式控制子模型的创建与绑定
createFork支持一个模型逻辑被复用渲染多次(如表格每行)
openFlowSettings流步骤设置
save / saveStepParams()模型可持久化,与后端打通

总结

项目React.ComponentFlowModel
适合场景UI 层组件组织数据驱动的流与区块管理
核心思想声明式 UI模型驱动的结构化流
管理方式React 控制生命周期FlowModel 控制模型生命周期与结构
优势丰富生态和工具链强结构化、流可持久化、子模型可控

FlowModel 可以与 React 互补使用:在 FlowModel 中使用 React 渲染,而由 FlowEngine 管理其生命周期和结构。