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

Hızlı Başlangıç

Eklenti Geliştirmeye Genel Bakış
İlk Eklentinizi Yazma
Proje Dizin Yapısı

Sunucu Taraflı Geliştirme

Genel Bakış
Plugin
Collections
Database İşlemleri
DataSourceManager
ResourceManager
ACL İzin Kontrolü
Middleware
Cache
Event
Context
Migration
Logger
I18n
Command
CronJobManager
Test

İstemci Taraflı Geliştirme

Genel Bakış
Plugin
Context
Router
ACL İzin Kontrolü
DataSourceManager
Resource
Request
Styles & Themes
Logger
I18n
Test

Diğer

Eklenti Yükseltme Kılavuzu
Dil Listesi
Bağımlılık Yönetimi
Derleme
Previous PageGenel Bakış
Next PageContext
TIP

Bu belge AI tarafından çevrilmiştir. Herhangi bir yanlışlık için lütfen İngilizce sürümüne bakın

#Eklenti

NocoBase'de, istemci eklentisi (Client Plugin), ön uç işlevselliğini genişletmenin ve özelleştirmenin ana yoludur. @nocobase/client tarafından sağlanan Plugin temel sınıfını miras alarak, geliştiriciler farklı yaşam döngüsü aşamalarında mantık kaydedebilir, sayfa bileşenleri ekleyebilir, menüleri genişletebilir veya üçüncü taraf işlevselliğini entegre edebilirler.

#Eklenti Sınıf Yapısı

Temel bir istemci eklentisi yapısı aşağıdaki gibidir:

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

export class PluginHelloClient extends Plugin {
  async afterAdd() {
    // Eklenti eklendikten sonra çalışır
    console.log('Plugin added');
  }

  async beforeLoad() {
    // Eklenti yüklenmeden önce çalışır
    console.log('Before plugin load');
  }

  async load() {
    // Eklenti yüklendiğinde çalışır; rotaları, UI bileşenlerini vb. kaydeder
    console.log('Plugin loaded');
  }
}

export default PluginHelloClient;

#Yaşam Döngüsü Açıklaması

Her eklenti, tarayıcı yenilendiğinde veya uygulama başlatıldığında sırasıyla aşağıdaki yaşam döngüsü aşamalarından geçer:

Yaşam Döngüsü MetoduÇalışma ZamanıAçıklama
afterAdd()Eklenti, eklenti yöneticisine eklendikten hemen sonra çalışırBu noktada eklenti örneği oluşturulmuştur, ancak tüm eklentilerin başlatılması tamamlanmamıştır. Yapılandırma okuma veya temel olayları bağlama gibi hafif başlatma işlemleri için uygundur.
beforeLoad()Tüm eklentilerin load() metodundan önce çalışırTüm etkin eklenti örneklerine (this.app.pm.get()) erişilebilir. Diğer eklentilere bağımlı hazırlık mantığını yürütmek için uygundur.
load()Eklenti yüklendiğinde çalışırTüm eklentilerin beforeLoad() metodu tamamlandıktan sonra bu metot çalıştırılır. Ön uç rotalarını, UI bileşenlerini ve diğer temel mantığı kaydetmek için uygundur.

#Çalışma Sırası

Tarayıcı her yenilendiğinde, afterAdd() → beforeLoad() → load() sırasıyla çalıştırılır.

#Eklenti Bağlamı ve FlowEngine

NocoBase 2.0'dan itibaren, istemci tarafı genişletme API'leri ağırlıklı olarak FlowEngine'de yoğunlaşmıştır. Eklenti sınıfında, this.engine aracılığıyla motor örneğine erişebilirsiniz.

// load() metodunda motor bağlamına erişim
async load() {
  const { app, router, apiClient } = this.engine.context;
  console.log('Current app:', app);
}

Daha fazla bilgi için bakınız:

  • FlowEngine
  • Bağlam