logologo
Start
Handbuch
Entwickler
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
Start
Handbuch
Entwickler
Plugins
API
logologo

Einführung

Was ist FlowEngine?
FlowEngine & Plugins
Schnellstart
Lernpfad

Leitfaden

FlowModel registrieren
FlowModel erstellen
FlowModel rendern
FlowModel: Event-Flow & Konfiguration
FlowModel-Persistenz
FlowModel-Lebenszyklus
FlowModel-Kontextsystem
Reaktivität: Observable
FlowModel vs. React.Component

Definitionen

ModelDefinition
FlowDefinition
EventDefinition
ActionDefinition
StepDefinition
Previous PageWas ist FlowEngine?
Next PageSchnellstart
KI-Übersetzungshinweis

Diese Dokumentation wurde automatisch von KI übersetzt.

#Beziehung zwischen FlowEngine und Plugins

FlowEngine ist kein Plugin, sondern wird als Kern-API bereitgestellt, die Plugins nutzen können, um Kernfunktionen mit Geschäftserweiterungen zu verbinden. In NocoBase 2.0 sind alle APIs im FlowEngine zentralisiert, und Plugins können über this.engine darauf zugreifen.

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

#Context: Zentral verwaltete globale Funktionen

FlowEngine stellt einen zentralisierten Context bereit, der die für verschiedene Szenarien benötigten APIs zusammenführt, zum Beispiel:

class PluginHello extends Plugin {
  async load() {
    // Router-Erweiterung
    this.engine.context.router;

    // Eine Anfrage senden
    this.engine.context.api.request();

    // i18n-bezogen
    this.engine.context.i18n;
    this.engine.context.t('Hello');
  }
}

Hinweis: Der Context in Version 2.0 löst die folgenden Probleme aus Version 1.x:

  • Verteilter Context, inkonsistente Aufrufe
  • Context geht zwischen verschiedenen React-Render-Bäumen verloren
  • Kann nur innerhalb von React-Komponenten verwendet werden

Weitere Details finden Sie im FlowContext-Kapitel.


#Abkürzungs-Aliase in Plugins

Um Aufrufe zu vereinfachen, stellt FlowEngine einige Aliase auf der Plugin-Instanz bereit:

  • this.context → entspricht this.engine.context
  • this.router → entspricht this.engine.context.router

#Beispiel: Erweitern des Routers

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>,
    });
  }
}

// Für Beispiel- und Testszenarien
const app = createMockClient({
  plugins: [PluginHelloModel],
});

export default app.getRootComponent();

In diesem Beispiel:

  • Das Plugin erweitert die Route für den Pfad / mithilfe der Methode this.router.add;
  • createMockClient stellt eine saubere Mock-Anwendung für einfache Demonstrationen und Tests bereit;
  • app.getRootComponent() gibt die Root-Komponente zurück, die direkt auf der Seite eingebunden werden kann.