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

Avvio Rapido

Panoramica Sviluppo Plugin
Scrivere il Primo Plugin
Struttura Directory Progetto

Sviluppo Server-side

Panoramica
Plugin
Collezioni (Tabelle Dati)
Operazioni Database
Gestione Origini Dati (DataSourceManager)
Gestione Risorse (ResourceManager)
Controllo Accessi (ACL)
Middleware
Cache
Eventi
Contesto Richiesta
Script di Migrazione
Logger
Internazionalizzazione (I18n)
Comando
Gestione Cron Job
Test

Sviluppo Client-side

Panoramica
Plugin
Contesto
Router
Controllo Accessi (ACL)
Gestione Origini Dati (DataSourceManager)
Risorse
Richieste
Stili e Temi
Logger
Internazionalizzazione (I18n)
Test

Altro

Guida all'Aggiornamento Plugin
Elenco Lingue
Gestione Dipendenze
Build
Previous PagePanoramica
Next PageContesto
Avviso di traduzione IA

Questa documentazione è stata tradotta automaticamente dall'IA.

#Plugin

In NocoBase, il plugin client è il modo principale per estendere e personalizzare le funzionalità frontend. Ereditando la classe base Plugin fornita da @nocobase/client, gli sviluppatori possono registrare logiche, aggiungere componenti di pagina, estendere menu o integrare funzionalità di terze parti nelle diverse fasi del ciclo di vita.

#Struttura della classe Plugin

Ecco la struttura di un plugin client di base:

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

export class PluginHelloClient extends Plugin {
  async afterAdd() {
    // Eseguito dopo l'aggiunta del plugin
    console.log('Plugin added');
  }

  async beforeLoad() {
    // Eseguito prima del caricamento del plugin
    console.log('Before plugin load');
  }

  async load() {
    // Eseguito al caricamento del plugin, registra route, componenti UI, ecc.
    console.log('Plugin loaded');
  }
}

export default PluginHelloClient;

#Descrizione del ciclo di vita

Ogni plugin attraversa le seguenti fasi del ciclo di vita in sequenza quando il browser viene aggiornato o l'applicazione viene inizializzata:

Metodo del ciclo di vitaMomento di esecuzioneDescrizione
afterAdd()Eseguito immediatamente dopo che il plugin è stato aggiunto al gestore dei plugin.L'istanza del plugin è già stata creata, ma non tutti i plugin hanno completato l'inizializzazione. È adatto per inizializzazioni leggere, come la lettura della configurazione o il binding di eventi di base.
beforeLoad()Eseguito prima del metodo load() di tutti i plugin.Può accedere a tutte le istanze dei plugin abilitati (this.app.pm.get()). È adatto per logiche di preparazione che dipendono da altri plugin.
load()Eseguito al caricamento del plugin.Questo metodo viene eseguito dopo che tutti i beforeLoad() dei plugin sono stati completati. È adatto per registrare route frontend, componenti UI e altre logiche centrali.

#Ordine di esecuzione

Ogni volta che il browser viene aggiornato, i metodi vengono eseguiti nell'ordine afterAdd() → beforeLoad() → load().

#Contesto del Plugin e FlowEngine

A partire da NocoBase 2.0, le API di estensione lato client sono principalmente concentrate in FlowEngine. Nella classe del plugin, può ottenere l'istanza del motore tramite this.engine.

// Accede al contesto del motore nel metodo load()
async load() {
  const { app, router, apiClient } = this.engine.context;
  console.log('Current app:', app);
}

Per maggiori dettagli, consulti:

  • FlowEngine
  • Contesto