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つのステップで完了します。

  1. 対応する基底クラス(例:BlockModel)を継承します。
  2. renderComponent() メソッドを実装し、Reactコンポーネントを返します。
  3. プラグインにブロックモデルを登録します。

詳細な例については、ブロックプラグインの作成 を参照してください。