Tip

このドキュメントはAIによって翻訳されました。不正確な情報については、英語版をご参照ください

FlowEngine とは?

FlowEngine は、NocoBase 2.0 で新たに導入されたフロントエンドのノーコード/ローコード開発エンジンです。モデル(Model)とフロー(Flow)を組み合わせることで、フロントエンドのロジックを簡素化し、再利用性と保守性を向上させます。また、フローの持つ設定機能(コンフィギュラビリティ)を活用することで、フロントエンドのコンポーネントやビジネスロジックに、ノーコードでの設定・オーケストレーション機能を提供します。

なぜ FlowEngine と呼ばれるのですか?

FlowEngine では、コンポーネントのプロパティやロジックは静的に定義されるのではなく、フロー(Flow) によって駆動・管理されるからです。

  • Flow はデータストリームのように、ロジックを順序付けられたステップ(Step)に分解し、段階的にコンポーネントに適用します。
  • Engine は、これがフロントエンドのロジックとインタラクションを駆動するエンジンであることを表しています。

したがって、FlowEngine = フローによって駆動されるフロントエンドロジックエンジン です。

Model とは?

FlowEngine において、Model はコンポーネントの抽象モデルであり、以下の役割を担います。

  • コンポーネントの プロパティ(Props)と状態 を管理します。
  • コンポーネントの レンダリング方法 を定義します。
  • フロー をホストし、実行します。
  • イベントディスパッチライフサイクル を一元的に処理します。

言い換えれば、Model はコンポーネントの論理的な頭脳 であり、コンポーネントを静的なユニットから、設定可能でオーケストレーション可能な動的なユニットへと変革させるものです。

Flow とは?

FlowEngine において、Flow は Model にサービスを提供するロジックストリーム です。 その目的は以下の通りです。

  • プロパティまたはイベントロジックをステップ(Step)に分解し、ストリームのように順次実行します。
  • プロパティの変更とイベント応答の両方を管理できます。
  • ロジックを 動的、設定可能、再利用可能 にします。

これらの概念をどのように理解すればよいですか?

フロー水の流れ として想像してみてください。

  • Step は水流が通るノードのようなもの です。 各 Step は小さなタスク(例:プロパティの設定、イベントのトリガー、API の呼び出し)を実行します。これは、水流が特定の水門や水車を通過するときに、それに応じた作用が起こるのと似ています。

  • フローは順序付けられています。 水流は上流から下流へと所定の経路をたどり、すべての Step を順次通過します。同様に、Flow 内のロジックは定義された順序で実行されます。

  • フローは分岐および結合できます。 一本の水流は複数の小さな流れに分かれたり、合流したりできます。Flow も複数のサブフローに分解したり、より複雑なロジックチェーンに組み合わせたりできます。

  • フローは設定可能で制御可能です。 水流の方向と流量は水門で調整できます。Flow の実行方法とパラメーターも、設定(stepParams)によって制御できます。

比喩のまとめ

  • コンポーネント は水車のようなもので、水流に押されて初めて回転します。
  • Model はこの水車の土台とコントローラーであり、水流を受け取り、その動作を駆動する役割を担います。
  • Flow はその水流であり、各 Step を順に通過し、コンポーネントを絶えず変化させ、応答させます。

したがって、FlowEngine では、

  • Flow はロジックを水流のように自然に流れるようにします
  • Model はコンポーネントをこの水流の担い手および実行者とします