logologo
Start
Handbuch
Entwicklung
Plugins
API
Startseite
English
简体中文
日本語
한국어
Español
Português
Deutsch
Français
Русский
Start
Handbuch
Entwicklung
Plugins
API
Startseite
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
RunJS-Plugin-Erweiterungspunkte

Definitionen

ModelDefinition
FlowDefinition
EventDefinition
ActionDefinition
StepDefinition
Previous PageFlowModel erstellen
Next PageFlowModel: Event-Flow & Konfiguration
KI-Übersetzungshinweis

Diese Dokumentation wurde automatisch von KI übersetzt.

#FlowModel rendern

FlowModelRenderer ist die zentrale React-Komponente zum Rendern eines FlowModel. Sie ist dafür zuständig, eine FlowModel-Instanz in eine visuelle React-Komponente umzuwandeln.

#Grundlegende Verwendung

#FlowModelRenderer

import { FlowModelRenderer } from '@nocobase/flow-engine';

// Grundlegende Verwendung
<FlowModelRenderer model={myModel} />

#FieldModelRenderer

Für gesteuerte Feld-Modelle verwenden Sie FieldModelRenderer zum Rendern:

import { FieldModelRenderer } from '@nocobase/flow-engine';

// Gesteuertes Feld-Rendern
<FieldModelRenderer model={fieldModel} />

#Props-Parameter

#FlowModelRendererProps

ParameterTypStandardwertBeschreibung
modelFlowModel-Die zu rendernde FlowModel-Instanz
uidstring-Der eindeutige Bezeichner für das Workflow-Modell
fallbackReact.ReactNode<Skeleton.Button size="small" />Fallback-Inhalt, der bei einem Fehler beim Rendern angezeigt wird
showFlowSettingsboolean | objectfalseOb der Einstiegspunkt für die Workflow-Einstellungen angezeigt werden soll
flowSettingsVariant'dropdown' | 'contextMenu' | 'modal' | 'drawer''dropdown'Der Interaktionsstil für die Workflow-Einstellungen
hideRemoveInSettingsbooleanfalseOb die Schaltfläche zum Entfernen in den Einstellungen ausgeblendet werden soll
showTitlebooleanfalseOb der Modell-Titel in der oberen linken Ecke des Rahmens angezeigt werden soll
skipApplyAutoFlowsbooleanfalseOb das Anwenden von automatischen Workflows übersprungen werden soll
inputArgsRecord<string, any>-Zusätzlicher Kontext, der an useApplyAutoFlows übergeben wird
showErrorFallbackbooleantrueOb die äußerste Schicht mit der FlowErrorFallback-Komponente umschlossen werden soll
settingsMenuLevelnumber-Ebene des Einstellungsmenüs: 1=nur aktuelles Modell, 2=inklusive Kindmodelle
extraToolbarItemsToolbarItemConfig[]-Zusätzliche Toolbar-Elemente

#Detaillierte Konfiguration von showFlowSettings

Wenn showFlowSettings ein Objekt ist, werden die folgenden Konfigurationen unterstützt:

showFlowSettings={{
  showBackground: true,    // Hintergrund anzeigen
  showBorder: true,        // Rahmen anzeigen
  showDragHandle: true,    // Ziehgriff anzeigen
  style: {},              // Benutzerdefinierter Toolbar-Stil
  toolbarPosition: 'inside' // Toolbar-Position: 'inside' | 'above' | 'below'
}}

#Rendering-Lebenszyklus

Der gesamte Rendering-Zyklus ruft die folgenden Methoden der Reihe nach auf:

  1. model.dispatchEvent('beforeRender') – beforeRender-Ereignis
  2. model.render() – Führt die Render-Methode des Modells aus
  3. model.onMount() – Hook für die Komponentenmontage
  4. model.onUnmount() – Hook für die Komponenten-Demontage

#Anwendungsbeispiele

#Grundlegendes Rendern

import { FlowModelRenderer } from '@nocobase/flow-engine';

function MyComponent() {
  const model = useFlowModel();
  
  return (
    <FlowModelRenderer 
      model={model}
      fallback={<div>Lädt...</div>}
    />
  );
}

#Rendern mit Workflow-Einstellungen

// Einstellungen anzeigen, aber die Schaltfläche zum Entfernen ausblenden
<FlowModelRenderer
  model={myModel}
  showFlowSettings={true}
  hideRemoveInSettings={true}
/>

// Einstellungen und Titel anzeigen
<FlowModelRenderer
  model={myModel}
  showFlowSettings={true}
  showTitle={true}
/>

// Kontextmenü-Modus verwenden
<FlowModelRenderer
  model={myModel}
  showFlowSettings={true}
  flowSettingsVariant="contextMenu"
  hideRemoveInSettings={true}
/>

#Benutzerdefinierte Toolbar

<FlowModelRenderer
  model={myModel}
  showFlowSettings={true}
  extraToolbarItems={[
    {
      key: 'custom-action',
      title: 'Benutzerdefinierte Aktion',
      icon: 'SettingOutlined',
      onClick: () => {
        console.log('Benutzerdefinierte Aktion');
      }
    }
  ]}
/>

#Automatische Workflows überspringen

<FlowModelRenderer
  model={myModel}
  skipApplyAutoFlows={true}
  showErrorFallback={false}
/>

#Feldmodell-Rendern

import { FieldModelRenderer } from '@nocobase/flow-engine';

function FormField({ model, onChange, ...props }) {
  return (
    <FieldModelRenderer
      model={model}
      onChange={onChange}
      {...props}
    />
  );
}

#Fehlerbehandlung

FlowModelRenderer verfügt über einen umfassenden, integrierten Fehlerbehandlungsmechanismus:

  • Automatische Fehlergrenze: showErrorFallback={true} ist standardmäßig aktiviert
  • Fehler bei automatischen Workflows: Fängt Fehler während der Ausführung automatischer Workflows ab und behandelt sie
  • Rendering-Fehler: Zeigt Fallback-Inhalt an, wenn das Rendern des Modells fehlschlägt
<FlowModelRenderer
  model={myModel}
  showErrorFallback={true}
  fallback={<div>Rendern fehlgeschlagen, bitte versuchen Sie es erneut</div>}
/>

#Leistungsoptimierung

#Automatische Workflows überspringen

In Szenarien, in denen automatische Workflows nicht benötigt werden, können Sie diese überspringen, um die Leistung zu verbessern:

<FlowModelRenderer
  model={myModel}
  skipApplyAutoFlows={true}
/>

#Reaktivität und Updates

FlowModelRenderer verwendet den observer von @formily/reactive-react für reaktive Updates. Dies stellt sicher, dass die Komponente automatisch neu gerendert wird, wenn sich der Zustand des Modells ändert.

#Hinweise

  1. Modellvalidierung: Stellen Sie sicher, dass das übergebene model eine gültige render-Methode besitzt.
  2. Lebenszyklus-Management: Die Lebenszyklus-Hooks des Modells werden zum geeigneten Zeitpunkt aufgerufen.
  3. Fehlergrenze: Es wird empfohlen, die Fehlergrenze in einer Produktionsumgebung zu aktivieren, um eine bessere Benutzererfahrung zu bieten.
  4. Leistungsaspekte: Für Szenarien, die das Rendern einer großen Anzahl von Modellen umfassen, sollten Sie die Option skipApplyAutoFlows in Betracht ziehen.