logologo
Começar
Manual
Desenvolvimento
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
Começar
Manual
Desenvolvimento
Plugins
API
logologo

Início rápido

Visão geral do desenvolvimento de plugins
Escrever o primeiro plugin
Estrutura de diretórios do projeto

Desenvolvimento do lado do servidor

Visão Geral
Plugin
Collections (Tabelas de dados)
Database (Operações de banco de dados)
DataSourceManager (Gerenciamento de fontes de dados)
ResourceManager (Gerenciamento de recursos)
ACL (Controle de acesso)
Middleware
Cache
Event (Evento)
Context (Contexto da requisição)
Migration (Script de atualização)
Logger (Log)
I18n (Internacionalização)
Command (Linha de comando)
CronJobManager (Gerenciamento de tarefas agendadas)
Test (Teste)

Desenvolvimento do lado do cliente

Visão Geral
Plugin
Context (Contexto)
Router (Rotas)
ACL (Controle de acesso)
DataSourceManager (Gerenciamento de fontes de dados)
Resource (Recurso)
Request (Requisição)
Estilos e temas
Logger (Log)
I18n (Internacionalização)
Test (Teste)

Outros

Guia de atualização de plugins
Lista de idiomas
Gerenciamento de dependências
Build
Previous PageVisão Geral
Next PageContext (Contexto)
Aviso de tradução por IA

Esta documentação foi traduzida automaticamente por IA.

#Plugin

Em NocoBase, o Plugin Cliente é a principal forma de estender e personalizar a funcionalidade do frontend. Ao estender a classe base Plugin fornecida por @nocobase/client, os desenvolvedores podem registrar lógica, adicionar componentes de página, estender menus ou integrar funcionalidades de terceiros em diferentes estágios do ciclo de vida.

#Estrutura da Classe Plugin

A estrutura básica de um plugin do lado do cliente é a seguinte:

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

export class PluginHelloClient extends Plugin {
  async afterAdd() {
    // Executado após o plugin ser adicionado
    console.log('Plugin added');
  }

  async beforeLoad() {
    // Executado antes do plugin carregar
    console.log('Before plugin load');
  }

  async load() {
    // Executado quando o plugin carrega, registra rotas, componentes de UI, etc.
    console.log('Plugin loaded');
  }
}

export default PluginHelloClient;

#Descrição do Ciclo de Vida

Cada plugin passa sequencialmente pelos seguintes estágios do ciclo de vida quando o navegador é atualizado ou a aplicação é inicializada:

Método do Ciclo de VidaMomento da ExecuçãoDescrição
afterAdd()Executado imediatamente após o plugin ser adicionado ao gerenciador de pluginsA instância do plugin já foi criada neste ponto, mas nem todos os plugins terminaram de inicializar. Adequado para inicialização leve, como ler configurações ou vincular eventos básicos.
beforeLoad()Executado antes do load() de todos os pluginsPode acessar todas as instâncias de plugins habilitados (this.app.pm.get()). Adequado para lógica de preparação que depende de outros plugins.
load()Executado quando o plugin carregaEste método é executado após a conclusão de todos os beforeLoad() dos plugins. Adequado para registrar rotas de frontend, componentes de UI e outras lógicas centrais.

#Ordem de Execução

Toda vez que o navegador é atualizado, afterAdd() → beforeLoad() → load() serão executados.

#Contexto do Plugin e FlowEngine

A partir do NocoBase 2.0, as APIs de extensão do lado do cliente estão principalmente concentradas no FlowEngine. Na classe do plugin, você pode obter a instância do engine através de this.engine.

// Acesse o contexto do engine no método load()
async load() {
  const { app, router, apiClient } = this.engine.context;
  console.log('Current app:', app);
}

Para mais detalhes, consulte:

  • FlowEngine
  • Contexto