logologo
Começar
Manual
Desenvolvimento
Plugins
API
Início
English
简体中文
日本語
한국어
Español
Português
Deutsch
Français
Русский
Começar
Manual
Desenvolvimento
Plugins
API
Início
logologo

Introdução

O que é o FlowEngine?
Relação entre FlowEngine e Plugins
Início Rápido
Roteiro de Aprendizagem

Guia

Registrar FlowModel
Criar FlowModel
Renderizar FlowModel
Fluxo de Eventos e Configuração do FlowModel
Persistência do FlowModel
Ciclo de Vida do FlowModel
Sistema de Contexto do FlowModel
Mecanismo Reativo: Observable
FlowModel vs React.Component
Pontos de Extensão do Plugin RunJS

Definições

ModelDefinition
FlowDefinition
EventDefinition
ActionDefinition
StepDefinition
Previous PageO que é o FlowEngine?
Next PageInício Rápido
Aviso de tradução por IA

Esta documentação foi traduzida automaticamente por IA.

#Relação entre FlowEngine e Plugins

O FlowEngine não é um plugin, mas sim uma API central fornecida para que os plugins a utilizem, conectando as capacidades centrais com as extensões de negócio. No NocoBase 2.0, todas as APIs estão centralizadas no FlowEngine, e os plugins podem acessar o FlowEngine através de this.engine.

class PluginHello extends Plugin {
  async load() {
    this.engine.registerModelLoaders({ ... });
  }
}

#Context: Capacidades Globais Gerenciadas Centralmente

O FlowEngine oferece um Context centralizado que reúne as APIs necessárias para diversos cenários, por exemplo:

class PluginHello extends Plugin {
  async load() {
    // Extensão de rota
    this.engine.context.router;

    // Fazer uma requisição
    this.engine.context.api.request();

    // Relacionado à internacionalização (i18n)
    this.engine.context.i18n;
    this.engine.context.t('Hello');
  }
}

Observação: O Context no 2.0 resolve os seguintes problemas da versão 1.x:

  • Contexto disperso, chamadas inconsistentes
  • O contexto era perdido entre diferentes árvores de renderização do React
  • Só podia ser usado dentro de componentes React

Para mais detalhes, consulte o capítulo FlowContext.


#Apelidos de Atalho em Plugins

Para simplificar as chamadas, o FlowEngine oferece alguns apelidos na instância do plugin:

  • this.context → equivalente a this.engine.context
  • this.router → equivalente a this.engine.context.router

#Exemplo: Estendendo a Rota

import { createMockClient, Plugin } from '@nocobase/client';

class PluginHelloModel extends Plugin {
  async afterAdd() {}
  async beforeLoad() {}
  async load() {
    this.router.add('root', {
      path: '/',
      element: <div>Hello</div>,
    });
  }
}

// Para cenários de exemplo e teste
const app = createMockClient({
  plugins: [PluginHelloModel],
});

export default app.getRootComponent();

Neste exemplo:

  • O plugin estende a rota para o caminho / usando o método this.router.add;
  • createMockClient fornece uma aplicação mock limpa para facilitar a demonstração e os testes;
  • app.getRootComponent() retorna o componente raiz, que pode ser montado diretamente na página.