UI Schema
UI Schema — это протокол, который NocoBase использует для описания фронтенд-компонентов. Он основан на Formily Schema 2.0 и выполнен в стиле, близком к JSON Schema. В FlowEngine поле uiSchema метода registerFlow использует именно этот синтаксис для описания UI панели настроек.
Базовое использование
Простейший компонент
Любой нативный HTML-тег можно представить в виде schema:
Эквивалент в JSX:
Дочерние компоненты
Дочерние компоненты описываются в properties:
Эквивалент в JSX:
Описание свойств
type
Тип узла:
name
Имя schema. Имя дочернего узла — это ключ в properties:
title
Заголовок узла, обычно используется как метка поля формы.
x-component
Имя компонента. Может быть нативным HTML-тегом или зарегистрированным React-компонентом:
x-component-props
Свойства компонента:
x-decorator
Компонент-обёртка. Сочетание x-decorator + x-component позволяет разместить два компонента в одном узле schema — это упрощает структуру и повышает переиспользуемость.
Например, в формах FormItem используется как decorator:
Эквивалент в JSX:
x-display
Состояние отображения компонента:
x-pattern
Режим взаимодействия для компонента поля:
Использование в registerFlow
При разработке плагинов uiSchema в основном применяется в панелях настроек registerFlow. Каждое поле обычно оборачивается в 'x-decorator': 'FormItem':
В v2 синтаксис uiSchema сохраняет совместимость, однако сценарии его использования ограничены — он применяется в основном в панелях настроек Flow для описания форм UI. Для большей части runtime-рендеринга компонентов рекомендуется использовать компоненты Antd напрямую.
Шпаргалка по часто используемым компонентам
Связанные ссылки
- Обзор FlowEngine (разработка плагинов) — практическое использование uiSchema в registerFlow
- Определение Flow — полное описан ие параметров registerFlow
- Документация Formily Schema — протокол Formily, на котором основан uiSchema

