このドキュメントはAIによって翻訳されました。不正確な情報については、英語版をご参照ください
クイックスタート:オーケストレーション可能なボタンコンポーネントを構築する
Reactでは、通常このようにボタンコンポーネントをレンダリングします。
上記のコードはシンプルですが、静的コンポーネントであり、ノー コードプラットフォームが求める設定可能性やオーケストレーション能力には対応できません。
NocoBaseのFlowEngineでは、FlowModelとFlowDefinitionを使って、設定可能でイベント駆動型のコンポーネントを素早く構築し、より強力なノーコード機能を実現できます。
ステップ1:FlowModelを使ってコンポーネントをレンダリングする
🧠 主要なコンセプト
FlowModelはFlowEngineにおけるコアコンポーネントモデルであり、コンポーネントのロジック、レンダリング、設定機能をカプセル化します。- すべてのUIコンポーネントは
FlowModelを通じてインスタンス化され、一元的に管理できます。
📌 実装手順
1. カスタムモデルクラスを作成する
2. モデルインスタンスを作成する
3. <FlowModelRenderer />を使ってレンダリングする
ステップ2:PropsFlowを追加してボタンのプロパティを設定可能にする
💡 なぜPropsFlowを使うのか?
静的なpropsではなくFlowを使うことで、プロパティの以下の機能を実現できます。
- 動的な設定
- ビジュアル編集
- 状態のリプレイと永続化
🛠 主な変更点
1. ボタンプロパティのFlowを定義する
2. 静的なpropsの代わりにstepParamsを使用する
✅
stepParamsを使用することはFlowEngineが推奨する方法であり、Reactコンポーネントのようなシリアライズ不可能なデータに関する問題を回避できます。
3. プロパティ設定インターフェースを有効にする
ステップ3:ボタンのイベントフロー(EventFlow)をサポートする
🎯 シナリオ:ボタンクリック後に確認ダイアログを表示する
1. onClickイベントをリッスンする
非侵入的な方法でonClickを追加します。
2. イベントフローを定義する
補足説明:
- イベントフロー(EventFlow)を使用すると、ボタンの動作をフローを通じて柔軟に設定できます。例えば、ダイアログの表示、メッセージ、API呼び出しなどです。
onClickやonMouseEnterなどの異なるイベントに対して、それぞれ異なるイベントフローを登録することで、複雑なビジネス要件に対応できます。
3. イベントフローのパラメーターを設定する
モデルを作成する際に、stepParamsを通じてイベントフローのデフォルトパラメーターを設定できます。
モデル比較図:ReactComponent vs FlowModel
Flowはコンポーネントの実装方法を変更するものではありません。単にReactComponentにPropsFlowとEventFlowのサポートを追加し、コンポーネントのプロパティとイベントを視覚的に設定・オーケストレーションできるようにするものです。

ReactComponent
FlowModel
まとめ
以上の3つのステップを通じて、設定とイベントオーケストレーションをサポートするボタンコンポーネントを完成させました。これにより、以下の利点が得られます。
- 🚀 プロパティ(タイトル、タイプ、アイコンなど)を視覚的に設定可能
- 🔄 イベント応答をフローで管理可能(例:クリックでダイアログ表示)
- 🔧 今後の拡張をサポート(例:条件ロジック、変数バインディングなど)
このパターンは、フォーム、リスト、チャートなど、あらゆるUIコンポーネントにも適用できます。NocoBaseのFlowEngineでは、すべてがオーケストレーション可能です。

