logologo
Mulai
Panduan
Pengembangan
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
Mulai
Panduan
Pengembangan
Plugin
API
logologo

Pengantar

Apa itu FlowEngine?
Hubungan FlowEngine & Plugin
Mulai Cepat
Peta Jalan Belajar

Panduan

Registrasi FlowModel
Buat FlowModel
Render FlowModel
Alur Event & Konfigurasi FlowModel
Persistensi FlowModel
Siklus Hidup FlowModel
Sistem Konteks FlowModel
Mekanisme Responsif: Observable
FlowModel vs React.Component

Definitions

ModelDefinition
FlowDefinition
EventDefinition
ActionDefinition
StepDefinition
Previous PageApa itu FlowEngine?
Next PageMulai Cepat
TIP

Dokumen ini diterjemahkan oleh AI. Untuk ketidakakuratan apa pun, silakan lihat versi bahasa Inggris

#Hubungan antara FlowEngine dan Plugin

FlowEngine bukanlah sebuah plugin, melainkan sebuah API inti yang disediakan untuk digunakan oleh plugin, berfungsi untuk menghubungkan kapabilitas inti dengan ekstensi bisnis. Di NocoBase 2.0, semua API terpusat di FlowEngine, dan plugin dapat mengakses FlowEngine melalui this.engine.

class PluginHello extends Plugin {
  async load() {
    this.engine.registerModels({ ... });
  }
}

#Context: Kapabilitas Global yang Dikelola Secara Terpusat

FlowEngine menyediakan sebuah Context terpusat yang menyatukan API yang diperlukan untuk berbagai skenario, misalnya:

class PluginHello extends Plugin {
  async load() {
    // Ekstensi router
    this.engine.context.router;

    // Membuat permintaan
    this.engine.context.api.request();

    // Terkait internasionalisasi
    this.engine.context.i18n;
    this.engine.context.t('Hello');
  }
}

Catatan: Context di versi 2.0 menyelesaikan masalah-masalah berikut dari versi 1.x:

  • Konteks yang tersebar, panggilan yang tidak konsisten
  • Konteks hilang di antara pohon render React yang berbeda
  • Hanya dapat digunakan di dalam komponen React

Untuk detail lebih lanjut, lihat bab FlowContext.


#Alias Pintasan di Plugin

Untuk menyederhanakan panggilan, FlowEngine menyediakan beberapa alias pada instance plugin:

  • this.context → setara dengan this.engine.context
  • this.router → setara dengan this.engine.context.router

#Contoh: Memperluas Router

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

class PluginHelloModel extends Plugin {
  async afterAdd() {}
  async beforeLoad() {}
  async load() {
    this.router.add('root', {
      path: '/',
      element: <div>Hello</div>,
    });
  }
}

// Untuk skenario contoh dan pengujian
const app = createMockClient({
  plugins: [PluginHelloModel],
});

export default app.getRootComponent();

Dalam contoh ini:

  • Plugin memperluas rute untuk jalur / menggunakan metode this.router.add;
  • createMockClient menyediakan aplikasi mock yang bersih untuk demonstrasi dan pengujian yang mudah;
  • app.getRootComponent() mengembalikan komponen root, yang dapat langsung dipasang ke halaman.