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

Giriş

FlowEngine Nedir?
FlowEngine ve Eklenti İlişkisi
Hızlı Başlangıç
Öğrenme Yol Haritası

Kılavuz

FlowModel Kaydı
FlowModel Oluşturma
FlowModel İşleme
FlowModel Olay Akışı ve Yapılandırma
FlowModel Kalıcılığı
FlowModel Yaşam Döngüsü
FlowModel Bağlam Sistemi
Reaktif Mekanizma: Observable
FlowModel vs React.Component

Tanımlar

ModelDefinition
FlowDefinition
EventDefinition
ActionDefinition
StepDefinition
Previous PageFlowEngine Nedir?
Next PageHızlı Başlangıç
TIP

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

#FlowEngine ve Eklentiler Arasındaki İlişki

FlowEngine bir eklenti değildir; çekirdek API olarak eklentilerin kullanımına sunulur ve çekirdek yeteneklerle iş uzantılarını birbirine bağlar. NocoBase 2.0'da tüm API'ler FlowEngine'de toplanmıştır ve eklentiler this.engine aracılığıyla FlowEngine'e erişebilir.

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

#Context: Merkezi Olarak Yönetilen Global Yetenekler

FlowEngine, çeşitli senaryolar için gerekli API'leri bir araya getiren merkezi bir Context sağlar, örneğin:

class PluginHello extends Plugin {
  async load() {
    // Yönlendirici (router) uzantısı
    this.engine.context.router;

    // İstek gönderme
    this.engine.context.api.request();

    // Uluslararasılaştırma (i18n) ile ilgili
    this.engine.context.i18n;
    this.engine.context.t('Hello');
  }
}

Not: Context, 2.0 sürümünde 1.x'ten gelen şu sorunları çözmüştür:

  • Dağınık context yapısı, tutarsız çağrılar
  • Farklı React render ağaçları arasında context kaybı
  • Yalnızca React bileşenleri içinde kullanılabilme

Daha fazla ayrıntı için FlowContext bölümüne bakınız.


#Eklentilerdeki Kısayol Takma Adları

Çağrıları basitleştirmek için FlowEngine, eklenti örnekleri üzerinde bazı takma adlar sağlar:

  • this.context → this.engine.context ile eşdeğerdir
  • this.router → this.engine.context.router ile eşdeğerdir

#Örnek: Yönlendiriciyi Genişletme

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>,
    });
  }
}

// Örnek ve test senaryoları için
const app = createMockClient({
  plugins: [PluginHelloModel],
});

export default app.getRootComponent();

Bu örnekte:

  • Eklenti, this.router.add metodunu kullanarak / yolu için yönlendiriciyi genişletir;
  • createMockClient, kolay gösterim ve test için temiz bir mock uygulama sağlar;
  • app.getRootComponent() kök bileşeni döndürür ve doğrudan sayfaya monte edilebilir.