UI Schema
UI Schema は NocoBase がフロントエンドコンポーネントを記述するためのプロトコルで、Formily Schema 2.0 をベースとした JSON Schema 風のスタイルです。FlowEngine では、registerFlow の uiSchema フィールドがこの構文を使用して設定パネルの UI を定義します。
基本的な使い方
最もシンプルなコンポーネント
すべてのネイティブ HTML タグは schema の記法に変換できます:
これは以下の JSX と同等です:
子コンポーネント
children コンポーネントは properties に記述します:
これは以下の JSX と同等です:
プロパティの説明
type
ノードのタイプ:
name
schema の名前。子ノードの name は properties のキーになります:
title
ノードのタイトル。通常はフォームフィールドのラベルとして使用されます。
x-component
コンポーネント名。ネイティブ HTML タグまたは登録済みの React コンポーネントを使用できます:
x-component-props
コンポーネントのプロパティ:
x-decorator
ラッパーコンポーネント。x-decorator + x-component の組み合わせにより、2 つのコンポーネントを 1 つの schema ノードに配置できます。これにより、構造の複雑さを軽減し、再利用性を向上させます。
例えば、フォームのシナリオでは、FormItem が decorator になります:
これは以下の JSX と同等です:
x-display
コンポーネントの表示状態:
x-pattern
フィールドコンポーネントのインタラクションモード:
registerFlow での使用
プラグイン開発では、uiSchema は主に registerFlow の設定パネルで使用されます。各フィールドは通常 'x-decorator': 'FormItem' でラップします:
v2 では uiSchema 構文の互換性が保たれていますが、使用シナリオは限定的です。主に Flow の設定パネルでフォーム UI を記述するために使用します。ほとんどのランタイムのコンポーネントレンダリングには、Antd コンポーネント を直接使用することをお勧めします。
よく使うコンポーネントクイックリファレンス
関連リンク
- FlowEngine 概要(プラグイン開発) -- registerFlow 内での uiSchema の実際の使用方法
- FlowDefinition フロー定義 -- registerFlow の完全なパラメータ説明
- Formily Schema ドキュメント -- uiSchema のベースとなる Formily プロトコル

