logologo
Empezar
Manual
Desarrollo
Plugins
API
English
简体中文
日本語
한국어
Deutsch
Français
Español
Português
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
Empezar
Manual
Desarrollo
Plugins
API
logologo

Introducción

¿Qué es FlowEngine?
Relación entre FlowEngine y plugins
Inicio rápido
Hoja de ruta de aprendizaje

Guía

Registrar FlowModel
Crear FlowModel
Renderizar FlowModel
Flujo de eventos y configuración de FlowModel
Persistencia de FlowModel
Ciclo de vida de FlowModel
Sistema de contexto de FlowModel
Mecanismo reactivo: Observable
FlowModel vs React.Component

Definitions

ModelDefinition
FlowDefinition
EventDefinition
ActionDefinition
StepDefinition
Previous Page¿Qué es FlowEngine?
Next PageInicio rápido
Aviso de traducción por IA

Esta documentación ha sido traducida automáticamente por IA.

#Relación entre FlowEngine y los plugins

FlowEngine no es un plugin, sino una API central que se proporciona a los plugins para que la utilicen. Su propósito es conectar las capacidades del núcleo con las extensiones de negocio. En NocoBase 2.0, todas las API se centralizan en FlowEngine, y los plugins pueden acceder a FlowEngine a través de this.engine.

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

#Context: Capacidades globales gestionadas de forma centralizada

FlowEngine proporciona un Context centralizado que agrupa las API necesarias para diversos escenarios, por ejemplo:

class PluginHello extends Plugin {
  async load() {
    // Extensión del enrutador
    this.engine.context.router;

    // Realizar una solicitud
    this.engine.context.api.request();

    // Relacionado con la internacionalización (i18n)
    this.engine.context.i18n;
    this.engine.context.t('Hello');
  }
}

Nota: En la versión 2.0, el Context resuelve los siguientes problemas de la versión 1.x:

  • Contexto disperso, llamadas inconsistentes
  • El contexto se perdía entre diferentes árboles de renderizado de React
  • Solo se podía usar dentro de componentes de React

Para más detalles, consulte el capítulo FlowContext.


#Alias de acceso directo en los plugins

Para simplificar las llamadas, FlowEngine proporciona algunos alias en la instancia del plugin:

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

#Ejemplo: Extender el enrutador

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 escenarios de ejemplo y prueba
const app = createMockClient({
  plugins: [PluginHelloModel],
});

export default app.getRootComponent();

En este ejemplo:

  • El plugin extiende la ruta para la dirección / utilizando el método this.router.add;
  • createMockClient proporciona una aplicación simulada (mock) limpia para facilitar la demostración y las pruebas;
  • app.getRootComponent() devuelve el componente raíz, que se puede montar directamente en la página.