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

Schnellstart

Plugin-Entwicklung: Überblick
Erstes Plugin schreiben
Projektverzeichnisstruktur

Serverseitige Entwicklung

Überblick
Plugin
Collections (Datentabellen)
Datenbankoperationen
DataSourceManager
ResourceManager
ACL-Zugriffskontrolle
Middleware
Cache
Events
Request-Kontext
Migration (Update-Skripte)
Logger (Protokollierung)
I18n (Internationalisierung)
Command (Befehlszeile)
CronJobManager
Tests

Clientseitige Entwicklung

Überblick
Plugin
Kontext
Router
ACL-Zugriffskontrolle
DataSourceManager
Ressourcen
Requests
Stile & Themes
Logger (Protokollierung)
I18n (Internationalisierung)
Tests

Sonstiges

Plugin-Update-Leitfaden
Sprachenliste
Abhängigkeitsverwaltung
Build
Previous PageÜberblick
Next PageKontext
KI-Übersetzungshinweis

Diese Dokumentation wurde automatisch von KI übersetzt.

#Plugin

In NocoBase ist das Client-Plugin die wichtigste Methode, um die Frontend-Funktionalität zu erweitern und anzupassen. Indem Sie die von @nocobase/client bereitgestellte Plugin-Basisklasse erweitern, können Entwickler Logik registrieren, Seitenkomponenten hinzufügen, Menüs erweitern oder Drittanbieter-Funktionen in verschiedenen Lebenszyklusphasen integrieren.

#Plugin-Klassenstruktur

Eine grundlegende Struktur für ein Client-Plugin sieht wie folgt aus:

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

export class PluginHelloClient extends Plugin {
  async afterAdd() {
    // Wird ausgeführt, nachdem das Plugin hinzugefügt wurde
    console.log('Plugin added');
  }

  async beforeLoad() {
    // Wird vor dem Laden des Plugins ausgeführt
    console.log('Before plugin load');
  }

  async load() {
    // Wird beim Laden des Plugins ausgeführt, registriert Routen, UI-Komponenten usw.
    console.log('Plugin loaded');
  }
}

export default PluginHelloClient;

#Beschreibung des Lebenszyklus

Jedes Plugin durchläuft nacheinander den folgenden Lebenszyklus, wenn der Browser aktualisiert oder die Anwendung initialisiert wird:

Lebenszyklus-MethodeAusführungszeitpunktBeschreibung
afterAdd()Wird sofort ausgeführt, nachdem das Plugin zum Plugin-Manager hinzugefügt wurdeZu diesem Zeitpunkt ist die Plugin-Instanz bereits erstellt, aber nicht alle Plugins sind vollständig initialisiert. Geeignet für eine leichte Initialisierung, z. B. das Lesen von Konfigurationen oder das Binden grundlegender Ereignisse.
beforeLoad()Wird vor der load()-Methode aller Plugins ausgeführtSie können auf alle aktivierten Plugin-Instanzen (this.app.pm.get()) zugreifen. Geeignet für Vorbereitungslogik, die von anderen Plugins abhängt.
load()Wird beim Laden des Plugins ausgeführtDiese Methode wird ausgeführt, nachdem die beforeLoad()-Methoden aller Plugins abgeschlossen sind. Geeignet für die Registrierung von Frontend-Routen, UI-Komponenten und anderer Kernlogik.

#Ausführungsreihenfolge

Bei jeder Browseraktualisierung wird die Reihenfolge afterAdd() → beforeLoad() → load() ausgeführt.

#Plugin-Kontext und FlowEngine

Ab NocoBase 2.0 konzentrieren sich die clientseitigen Erweiterungs-APIs hauptsächlich in der FlowEngine. Innerhalb der Plugin-Klasse können Sie die Engine-Instanz über this.engine abrufen.

// Zugriff auf den Engine-Kontext in der load()-Methode
async load() {
  const { app, router, apiClient } = this.engine.context;
  console.log('Current app:', app);
}

Weitere Informationen finden Sie unter:

  • FlowEngine
  • Kontext