FlowModel 対 React.Component

基本的な役割の比較

機能・能力React.ComponentFlowModel
レンダリング機能はい、render() メソッドでUIを生成します。はい、render() メソッドでUIを生成します。
状態管理組み込みの statesetState を使用します。props を使用しますが、状態管理はモデルツリー構造に強く依存します。
ライフサイクルはい、componentDidMount などがあります。はい、onInitonMountonUnmount などがあります。
用途UIコンポーネントの構築データ駆動型で、フローベースの構造化された「モデルツリー」の構築
データ構造コンポーネントツリーモデルツリー(親子モデル、複数インスタンスのForkをサポート)
子コンポーネントJSXを使用してコンポーネントをネストします。setSubModel/addSubModel を使用して子モデルを明示的に設定します。
動的な振る舞いイベントバインディング、状態更新によるUI駆動フローの登録/ディスパッチ、自動フローの処理
永続化組み込みのメカニズムはありません。永続化をサポートします(例: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>;
  }
}

コンポーネントツリー 対 モデルツリー

  • Reactコンポーネントツリー:実行時にJSXのネストによって形成されるUIレンダリングツリーです。
  • FlowModelモデルツリーFlowEngineによって管理される論理構造ツリーで、永続化が可能であり、子モデルの動的な登録と制御ができます。ページブロック、操作フロー、データモデルなどの構築に適しています。

特殊機能(FlowModel固有)

機能説明
registerFlowフローの登録
applyFlow / dispatchEventフローの実行/トリガー
setSubModel / addSubModel子モデルの作成とバインディングを明示的に制御します。
createFork1つのモデルロジックを複数回レンダリングして再利用することをサポートします(例:テーブルの各行)。
openFlowSettingsフローのステップ設定
save / saveStepParams()モデルを永続化し、バックエンドと連携できます。

まとめ

項目React.ComponentFlowModel
適したシナリオUI層のコンポーネント構成データ駆動型のフローとブロック管理
コア思想宣言的UIモデル駆動型の構造化フロー
管理方法Reactがライフサイクルを制御FlowModelがモデルのライフサイクルと構造を制御
利点豊富なエコシステムとツールチェーン強力な構造化、フローの永続化、子モデルの制御が可能

FlowModelはReactと補完的に使用できます。FlowModel内でReactを使用してレンダリングを行い、そのライフサイクルと構造はFlowEngineによって管理されます。