Tip
このドキュメントはAIによって翻訳されました。不正確な情報については、英語版をご参照ください
ブロック拡張の概要
NocoBase 2.0では、ブロック拡張の仕組みが大幅に簡素化されました。開発者は、対応する FlowModel 基底クラスを継承し、関連するインターフェースメソッド(主に renderComponent() メソッド)を実装するだけで、ブロックを素早くカスタマイズできます。
ブロックの分類
NocoBaseでは、ブロックが3つのカテゴリに分類され、設定画面でグループごとに表示されます。
- データブロック(Data blocks):
DataBlockModelまたはCollectionBlockModelを継承するブロック - フィルターブロック(Filter blocks):
FilterBlockModelを継承するブロック - その他のブロック(Other blocks):
BlockModelを直接継承するブロック
ブロックのグループ分けは、対応する基底クラスによって決定されます。分類ロジックは継承関係に基づいており、追加の設定は不要です。
基底クラスの説明
システムは、拡張のために4つの基底クラスを提供しています。
BlockModel
基本ブロックモデルは、最も汎用的なブロック基底クラスです。
- 純粋な表示のみでデータに依存しないブロックに適しています。
- その他のブロック グル ープに分類されます。
- 個別化されたシナリオに適用できます。
DataBlockModel
データブロックモデル(データテーブルにバインドしない)は、カスタムデータソースを持つブロック向けです。
- データテーブルに直接バインドされず、データ取得ロジックをカスタマイズできます。
- データブロック グループに分類されます。
- 外部APIの呼び出し、カスタムデータ処理、統計グラフなどのシナリオに適用できます。
CollectionBlockModel
コレクションブロックモデルは、データテーブルにバインドする必要があるブロック向けです。
- データテーブルモデルの基底クラスへのバインドが必要です。
- データブロック グループに分類されます。
- リスト、フォーム、カンバンボードなど、特定のデータテーブルに明確に依存するブロックに適用できます。
FilterBlockModel
フィルターブロックモデルは、フィルター条件を構築するためのブロックです。
- フィルター条件を構築するためのモデル基底クラスです。
- フィルターブロック グループに分類されます。
- 通常、データブロックと連携して動作します。
基底クラスの選択方法
基底クラスを選択する際は、以下の原則に従ってください。
- 特定のデータテーブルにバインドする必要がある場合:
CollectionBlockModelを優先的に選択します。 - カスタムデータソースを使用する場合:
DataBlockModelを選択します。 - フィルター条件を設定し、データブロックと連携する場合:
FilterBlockModelを選択します。 - どのように分類すればよいか不明な場合:
BlockModelを選択します。
クイックスタート
カスタムブロックの作成は、たった3つのステップで完了します。
- 対応する基底クラス(例:
BlockModel)を継承します。 renderComponent()メソッドを実装し、Reactコンポーネントを返します。- プラグインにブロックモデルを登録します。
詳細な例については、ブロックプラグインの作成 を参照してください。

