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

بدء سريع

نظرة عامة على تطوير الإضافات
كتابة الإضافة الأولى
هيكل دليل المشروع

تطوير الواجهة الخلفية

نظرة عامة
Plugin
جداول بيانات Collections
عمليات Database
إدارة مصادر بيانات DataSourceManager
إدارة موارد ResourceManager
التحكم في أذونات ACL
Middleware
Cache
Event
سياق طلب Context
نص ترقية Migration
Logger
Telemetry
I18n (تدويل)
Command (سطر الأوامر)
إدارة المهام المجدولة CronJobManager
Test

تطوير الواجهة الأمامية

نظرة عامة
Plugin
Context (السياق)
Router
التحكم في أذونات ACL
إدارة مصادر بيانات DataSourceManager
Resource
Request
Styles & Themes (الأنماط والمظاهر)
Logger
I18n (تدويل)
Test

أخرى

دليل ترقية الإضافات
قائمة اللغات
إدارة التبعيات
البناء
Previous Pageنظرة عامة
Next PageContext (السياق)
إشعار الترجمة بالذكاء الاصطناعي

تمت ترجمة هذه الوثائق تلقائيًا بواسطة الذكاء الاصطناعي.

#إضافة (Plugin)

في NocoBase، تُعد إضافة العميل (Client Plugin) الطريقة الأساسية لتوسيع وتخصيص وظائف الواجهة الأمامية. من خلال وراثة الفئة الأساسية Plugin التي يوفرها @nocobase/client، يمكن للمطورين تسجيل المنطق، وإضافة مكونات الصفحات، وتوسيع القوائم، أو دمج وظائف الطرف الثالث في مراحل دورة حياة مختلفة.

#هيكل فئة الإضافة

فيما يلي هيكل إضافة العميل الأساسي:

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

export class PluginHelloClient extends Plugin {
  async afterAdd() {
    // يتم التنفيذ بعد إضافة الإضافة
    console.log('Plugin added');
  }

  async beforeLoad() {
    // يتم التنفيذ قبل تحميل الإضافة
    console.log('Before plugin load');
  }

  async load() {
    // يتم التنفيذ عند تحميل الإضافة، وتسجيل المسارات ومكونات واجهة المستخدم، وما إلى ذلك.
    console.log('Plugin loaded');
  }
}

export default PluginHelloClient;

#وصف دورة الحياة

يمر كل إضافة بدورة الحياة التالية بالتسلسل عند تحديث المتصفح أو تهيئة التطبيق:

طريقة دورة الحياةوقت التنفيذالوصف
afterAdd()يتم التنفيذ فور إضافة الإضافة إلى مدير الإضافاتفي هذه المرحلة، يكون كائن الإضافة قد تم إنشاؤه، ولكن لم يتم الانتهاء من تهيئة جميع الإضافات. مناسب للتهيئة الخفيفة، مثل قراءة الإعدادات أو ربط الأحداث الأساسية.
beforeLoad()يتم التنفيذ قبل load() لجميع الإضافاتيمكن الوصول إلى جميع كائنات الإضافات المُمكّنة (this.app.pm.get()). مناسب لتنفيذ منطق التحضير الذي يعتمد على إضافات أخرى.
load()يتم التنفيذ عند تحميل الإضافةيتم تنفيذ هذه الطريقة بعد اكتمال beforeLoad() لجميع الإضافات. مناسب لتسجيل مسارات الواجهة الأمامية، ومكونات واجهة المستخدم، وغيرها من المنطق الأساسي.

#ترتيب التنفيذ

في كل مرة يتم فيها تحديث المتصفح، سيتم تنفيذ afterAdd() → beforeLoad() → load()

#سياق الإضافة و FlowEngine

بدءًا من NocoBase 2.0، تتركز واجهات برمجة تطبيقات التوسيع الخاصة بالعميل بشكل أساسي في FlowEngine. في فئة الإضافة، يمكنك الحصول على كائن المحرك عبر this.engine.

// الوصول إلى سياق المحرك في طريقة load()
async load() {
  const { app, router, apiClient } = this.engine.context;
  console.log('Current app:', app);
}

لمزيد من المحتوى، راجع:

  • FlowEngine
  • السياق