Häufige Fähigkeiten
Das Kontext-Objekt stellt die eingebauten Fähigkeiten von NocoBase bereit. Beachten Sie: Manche sind nur im Plugin verfügbar, manche nur im Component, manche in beiden, aber mit unterschiedlicher Schreibweise. Hier ein Überblick:
Im Folgenden werden die Fähigkeiten nach Namespace einzeln vorgestellt.
API-Anfragen (ctx.api)
Über ctx.api.request() rufen Sie Backend-Schnittstellen auf, die Verwendung entspricht Axios.
Verwendung in einem Plugin
Verwendung in einem Component
In Kombination mit ahooks useRequest
In Components können Sie useRequest von ahooks verwenden, um die Zustandsverwaltung von Anfragen zu vereinfachen:
Anfrage-Interceptors
Über ctx.api.axios können Sie Request- bzw. Response-Interceptors hinzufügen, üblicherweise im load() des Plugins:
Benutzerdefinierte Header von NocoBase
Der NocoBase Server unterstützt die folgenden benutzerdefinierten Header, die üblicherweise automatisch durch Interceptors eingefügt werden und nicht manuell gesetzt werden müssen:
Internationalisierung (ctx.t / ctx.i18n)
NocoBase-Plugins verwalten Mehrsprachen-Dateien über das Verzeichnis src/locale/ und verwenden im Code Übersetzungen über ctx.t().
Mehrsprachen-Dateien
Erstellen Sie unter src/locale/ des Plugins JSON-Dateien je Sprache:
Beim erstmaligen Hinzufügen einer Sprachdatei muss die Anwendung neu gestartet werden, damit sie wirksam wird.
ctx.t()
Im Component erhalten Sie übersetzte Texte über ctx.t():
this.t()
Im Plugin ist this.t() praktischer — es fügt automatisch den Plugin-Paketnamen als Namespace ein, sodass Sie ns nicht manuell übergeben müssen:
ctx.i18n
ctx.i18n ist die zugrundeliegende i18next-Instanz. Im Allgemeinen reicht ctx.t(). Wenn Sie jedoch dynamisch die Sprache wechseln, Sprachänderungen abhören usw. müssen, können Sie ctx.i18n verwenden:
tExpr()
tExpr() erzeugt verzögerte Übersetzungsausdrücke als Zeichenkette und wird typischerweise in FlowModel.define() verwendet — denn define wird beim Laden des Moduls ausgeführt, zu diesem Zeitpunkt existiert noch keine i18n-Instanz:
Vollständige Verwendung der Internationalisierung (Schreibweise von Übersetzungsdateien, useT-Hook, tExpr usw.) siehe i18n Internationalisierung. Vollständige Liste der von NocoBase unterstützten Sprachcodes siehe Sprachenliste.
Logging (ctx.logger)
Über ctx.logger werden strukturierte Logs ausgegeben, basierend auf pino.
Verwendung in einem Plugin
Verwendung in einem Component
Log-Level von hoch nach niedrig: fatal > error > warn > info > debug > trace. Nur Logs, die größer oder gleich dem aktuell konfigurierten Level sind, werden ausgegeben.
Routen (ctx.router / ctx.route / ctx.location)
Routen-bezogene Fähigkeiten gliedern sich in drei Bereiche: Registrierung (nur Plugin), Navigation und Informationsabruf (nur Component).
Routen-Registrierung (this.router / this.pluginSettingsManager)
In load() des Plugins registrieren Sie Seitenrouten über this.router.add() und Plugin-Einstellungsseiten über this.pluginSettingsManager:
Ausführliche Verwendung siehe Router. Vollständiges Beispiel einer Einstellungsseite siehe Eine Plugin-Einstellungsseite erstellen.
this.router ist der RouterManager und dient zum Registrieren von Routen. this.pluginSettingsManager ist der PluginSettingsManager und dient zum Registrieren von Einstellungsseiten. Beide sind nicht dasselbe wie ctx.router (React Router, dient zur Seitennavigation) im Component.
Seitennavigation (ctx.router)
Im Component navigieren Sie über ctx.router.navigate() zu einer anderen Seite:
Routen-Informationen (ctx.route)
Im Component erhalten Sie über ctx.route Informationen zur aktuellen Route:
Vollständiger Typ von ctx.route:
Aktuelle URL (ctx.location)
ctx.location stellt detaillierte Informationen zur aktuellen URL bereit, ähnlich dem window.location des Browsers:
Auch wenn ctx.route und ctx.location über this.context im Plugin zugänglich sind, ist die URL beim Plugin-Laden unbestimmt und die abgerufenen Werte ohne Bedeutung. Verwendung im Component empfohlen.
View-Verwaltung (ctx.viewer / ctx.view)
ctx.viewer bietet die Möglichkeit, Modals, Drawer und andere Views imperativ zu öffnen. Verfügbar sowohl im Plugin als auch im Component.
Verwendung in einem Plugin
Verwendung in einem Component
Allgemeine Methode
In einem View arbeiten (ctx.view)
In Components innerhalb eines Modals/Drawers können Sie über ctx.view den aktuellen View steuern (z. B. schließen):
FlowEngine (this.flowEngine)
this.flowEngine ist die FlowEngine-Instanz und nur im Plugin verfügbar. Üblicherweise wird sie zum Registrieren von FlowModel verwendet:
FlowModel ist der Kern des visuellen Konfigurationssystems von NocoBase — wenn Ihr Component im Menü „Block / Feld / Aktion hinzufügen" erscheinen soll, müssen Sie es mit einem FlowModel verpacken. Ausführliche Verwendung siehe FlowEngine.
Weitere Fähigkeiten
Die folgenden Fähigkeiten kommen in fortgeschrittenen Szenarien zum Einsatz, hier kurz aufgeführt:
Detaillierte Verwendung dieser Fähigkeiten siehe vollständige FlowEngine-Dokumentation.
Verwandte Links
- Context-Übersicht — Gemeinsamkeiten und Unterschiede der beiden Kontext-Zugriffspunkte
- Plugin — Plugin-Shortcut-Eigenschaften
- Component-Entwicklung — Verwendung von useFlowContext im Component
- Router — Routen-Registrierung und -Navigation
- Vollständige FlowEngine-Dokumentation — Vollständige FlowEngine-Referenz
- i18n Internationalisierung — Schreibweise von Übersetzungsdateien, tExpr, useT
- Sprachenliste — Von NocoBase unterstützte Sprachcodes
- Eine Plugin-Einstellungsseite erstellen — Vollständiges Verwendungsbeispiel von ctx.api
- FlowEngine-Übersicht — Grundlegende Verwendung von FlowModel

