概要

NocoBase のクライアントプラグインでは、さまざまなことができます。新しいページの登録、カスタムコンポーネントの作成、バックエンド API の呼び出し、ブロックやフィールドの追加、さらにはアクションボタンの拡張まで可能です。これらの機能はすべて、統一されたプラグインエントリポイントを通じて管理されます。

React の開発経験があれば、すぐに始められます。ほとんどの場面では通常の React コンポーネントを書くだけで、あとは NocoBase が提供するコンテキスト機能(リクエスト送信、国際化など)を使って NocoBase と連携します。コンポーネントを NocoBase のビジュアル設定画面に表示させたい場合にのみ、FlowEngine について理解する必要があります。

注意

NocoBase は client(v1)から client-v2 への移行を進めています。現在 client-v2 はまだ開発中です。本ドキュメントの内容は先行体験向けのものであり、本番環境での使用は推奨されません。新しく開発するプラグインは src/client-v2/ ディレクトリと @nocobase/client-v2 の API を使用してください。

学習パス

以下の順番でクライアントプラグイン開発を学ぶことをお勧めします。シンプルなものから複雑なものへ進みます。

Plugin(エントリ)→ Router(ページ)→ Component(コンポーネント)→ Context(コンテキスト)→ FlowEngine(UI 拡張)

各ステップの内容:

  1. Plugin:プラグインのエントリクラスです。load() などのライフサイクルでルーティングやモデルなどのリソースを登録します。
  2. Routerrouter.add() でページルーティングを登録し、pluginSettingsManager でプラグイン設定ページを登録します。
  3. Component:ルーティングにマウントするのは React コンポーネントです。React + Antd で書くだけでよく、通常のフロントエンド開発と変わりません。
  4. Context:プラグイン内では this.context でコンテキストを取得し、コンポーネント内では useFlowContext() でコンテキストを取得すれば、NocoBase が提供する機能――リクエスト送信(ctx.api)、国際化(ctx.t)、ログ出力(ctx.logger)など――が使えます。
  5. FlowEngine:コンポーネントを「ブロック / フィールド / アクションを追加」メニューに表示し、ユーザーによるビジュアル設定をサポートする場合は、FlowModel でラップする必要があります。

最初の 4 ステップでほとんどのプラグインシナリオをカバーできます。NocoBase の UI 設定体系に深く統合する場合にのみ、5 ステップ目に進む必要があります。どちらの方法を使うべきか迷った場合は、Component vs FlowModel を参照してください。

クイックインデックス

やりたいこと参照先
クライアントプラグインの基本構造を理解するPlugin プラグイン
独立したページを追加するRouter ルーティング
プラグイン設定ページを追加するRouter ルーティング
普通の React コンポーネントを書くComponent コンポーネント開発
バックエンド API を呼び出す・NocoBase 組み込み機能を使うContext → よく使う機能
コンポーネントのスタイルをカスタマイズするStyles & Themes スタイルとテーマ
新しいブロックを追加するFlowEngine → ブロック拡張
新しいフィールドコンポーネントを追加するFlowEngine → フィールド拡張
新しいアクションボタンを追加するFlowEngine → アクション拡張
Component と FlowModel のどちらを使うか迷っているComponent vs FlowModel
完成したプラグインの作り方を見るプラグイン実践例

関連リンク