Skip to content

Como Schemas Viram Componentes

Sistema que transforma JSON em componentes funcionais — schema entra, interface sai.

Factories

Factory Pattern é o coração do schepta:

🔧 O Que É:

InputFactoryOutputResultado
Form JSONFormFactoryReact/Vue FormInterface funcionando
Menu JSONMenuFactoryReact/Vue NavigationNavegação completa
Component JSONComponentFactoryReact/Vue ComponentComponente renderizado

📊 Como Funciona:

Processo Automático:

  1. Schema JSON define estrutura e comportamento
  2. Factory interpreta schema e resolve componentes
  3. Component Registry fornece componentes React/Vue a serem renderizados
  4. Middleware Pipeline transforma props
  5. React/Vue Component renderiza interface final

Exemplo Rápido:

json
{ "fields": [{ "name": "email", "x-component": "InputEmail" }] }

FormFactory processa

jsx
<input type="email" name="email" />

💡 Resultado: JSON estruturado → Interface React/Vue funcional. Zero configuração manual!


🚀 Tipos de Factory

Cada Factory é especializado em um tipo de interface:

📝 FormFactory - Formulários Dinâmicos:

Schema PropertyFunçãoExemploResultado
fields[]Define campos do form[{ name: "email" }]Campo de email
x-componentTipo de input"InputText"Text input
requiredValidação obrigatóriatrueCampo required
x-rulesValidações customizadas{ minLength: 8 }Validação de tamanho

🧭 MenuFactory - Navegação Dinâmica:

Schema PropertyFunçãoExemploResultado
properties{}Define itens do menu{ "home": {...} }Item de navegação
x-component-props.hrefLink de navegação"/dashboard"Link funcionando
activeControle de visibilidade"\{\{ $segment.role === 'admin' \}\}"Menu por permissão
properties.submenuSubmenu hierárquicoNested propertiesDropdown menu

🎛️ ComponentFactory - Componentes Genéricos:

Schema PropertyFunçãoExemploResultado
x-componentTipo do component"Button"Botão React/Vue
x-component-propsProps específicas{ variant: "primary" }Botão estilizado
x-uiLayout e positioning{ grid: { xs: 12 } }Grid responsivo

⚙️ Arquitetura do Factory

Como o Factory Pattern funciona internamente:

🔄 Pipeline de Processamento:

Schema JSON

Validar Schema (Estrutura correta?)

Resolver Components (x-component → React/Vue component)

Transformar Props (Middleware + context)

Orquestrar Render (Component tree final)

React/Vue Elements

🎯 Como Factories Se Especializam:

Cada Factory tem lógica específica para seu domínio:

  • FormFactory: Injeta FormContext, aplica validações, gerencia state
  • MenuFactory: Gerencia navegação, active states, hierarquia de menus
  • ComponentFactory: Renderização genérica, props simples, sem context específico

Pontos de extensibilidade: Component Registry (global/local), Middleware Pipeline (custom transformations), Context Providers (domain-specific state).


📊 Casos de Uso Práticos

Factory Pattern resolve problemas reais de desenvolvimento:

🎯 Cenários Resolvidos:

SituaçãoProblema TradicionalCom Factory PatternBenefício
Forms RepetitivosCopy-paste de JSXSchema reutilizávelDRY principle
Validações ComplexasCódigo duplicadoRules no schemaCentralização
Menus DinâmicosCondicionais hardcodedvisible expressionsFlexibilidade
Multi-tenant UIBranches por clienteSchema por tenantEscalabilidade
A/B TestingFeature flags complexosSchemas diferentesAgilidade

Para EntenderLeiaRelação com Factories
Como escrever schemas02. Schema LanguageSintaxe que factories interpretam
Pipeline interno04. Schema ResolutionComo factories processam schemas
Motor de renderização05. RendererSistema usado pelos factories
Transformações de props06. MiddlewarePipeline aplicada pelos factories
Configuração global03. ProviderComo configurar factories