共通コンポーネント

NocoBase client v2 には共通コンポーネントが組み込まれています。プラグインページ、設定ページ、フォームを作るときに直接利用でき、NocoBase が用意している UI と操作を再利用できます。

このセクションでは、利用シーンごとにコンポーネントを整理しています。各ページでは 1 つのコンポーネントだけを扱い、適した場面、よく使う API、ドキュメント内でプレビューできるかを説明します。

クイックインデックス

やりたいこと参照先
低レベルの全画面スキャナーを制御するCodeScanner
dialog に標準フォームを配置するDialogFormLayout
drawer に標準フォームを配置するDrawerFormLayout
$env 環境変数だけを選択できるようにするEnvVariableInput
ファイルサイズを入力し、バイト数として保存するFileSizeInput
JSON / JSON5 設定を編集するJsonTextArea
強度表示付きでパスワードを入力するPasswordInput
API から Select オプションを非同期に読み込むRemoteSelect
入力欄にスキャン機能を追加するScanInput
フィールドで定数と変数の両方を受け付けるTypedVariableInput
単一行フィールドで {{ $env.X }}{{ $user.name }} のような変数を使えるようにするVariableInput
JSON / JSON5 設定に変数を挿入するVariableJsonTextArea
複数行テキストで変数を使えるようにするVariableTextArea
複数条件で Collection をフィルターするCollectionFilter
Collection フィルターパネルをページに埋め込むCollectionFilterPanel
antd Table のドラッグ可能な行をカスタマイズするSortableRow
Table のドラッグハンドル列をカスタマイズするSortHandle
設定ページで一覧表示、行選択、ドラッグソートを行うTable
Ant Design アイコンを使う、またはカスタムアイコンを登録するIcon
プラグイン拡張項目用の内部レジストリを作成するcreateFormRegistry

使用方法

クライアントプラグインで必要なコンポーネントをインポートし、通常の React コンポーネントと同じように使います:

import { RemoteSelect, Table } from '@nocobase/client-v2';

function SettingsPage() {
  return (
    <>
      <RemoteSelect request={loadOptions} />
      <Table rowKey="id" columns={columns} dataSource={records} />
    </>
  );
}

使い分け

基本は React + Antd で十分です。NocoBase プラグインで次のような場面に出会ったら、まずこれらのコンポーネントを確認してください:

  • 設定ページで drawer / dialog フォームを開く
  • フォームフィールドで変数の挿入、JSON 編集、ファイルサイズ入力、コードスキャンを行う
  • 一覧ページで Collection フィルターやドラッグソートを使う
  • NocoBase の統一アイコン入口を使う

通常の入力欄、ボタン、メッセージであれば、Antd コンポーネントを直接使う方が分かりやすいです。

関連リンク