UI Schema
UI Schema é o protocolo que o NocoBase utiliza para descrever componentes de front-end. Ele é baseado no Formily Schema 2.0, com um estilo semelhante ao JSON Schema. No FlowEngine, o campo uiSchema de registerFlow usa essa mesma sintaxe para definir a UI do painel de configurações.
Uso básico
O componente mais simples
Todas as tags HTML nativas podem ser convertidas para a sintaxe schema:
Equivale ao JSX:
Componentes filhos
Componentes filhos (children) são escritos em properties:
Equivale ao JSX:
Descrição das propriedades
type
O tipo do nó:
name
O nome do schema. O name de um nó filho é a key dentro de properties:
title
Título do nó, geralmente usado como rótulo de campo de formulário.
x-component
Nome do componente. Pode ser uma tag HTML nativa ou um componente React registrado:
x-component-props
Propriedades do componente:
x-decorator
Componente wrapper. A combinação x-decorator + x-component permite colocar dois componentes em um único nó schema, reduzindo a complexidade da estrutura e aumentando a reusabilidade.
Por exemplo, em um cenário de formulário, FormItem é o decorator:
Equivale ao JSX:
x-display
Estado de exibição do componente:
x-pattern
Modo de interação do componente de campo:
Uso em registerFlow
No desenvolvimento de plugins, o uiSchema é principalmente utilizado no painel de configuração de registerFlow. Cada campo geralmente é envolvido por 'x-decorator': 'FormItem':
A v2 mantém compatibilidade com a sintaxe do uiSchema, mas seus cenários de uso são limitados — principalmente para descrever a UI de formulários no painel de configuração do Flow. Para a maior parte da renderização de componentes em runtime, recomenda-se usar diretamente os componentes do Antd.
Referência rápida de componentes comuns
Links relacionados
- Visão geral do FlowEngine (Desenvolvimento de plugins) — uso prático do uiSchema em registerFlow
- Definição de Flow — documentação completa dos parâmetros de registerFlow
- Documentação do Formily Schema — protocolo Formily no qual o uiSchema é baseado

