logologo
Bắt đầu
Hướng dẫn
Phát triển
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
Bắt đầu
Hướng dẫn
Phát triển
Plugin
API
logologo

Giới thiệu

FlowEngine là gì?
Mối quan hệ giữa FlowEngine và plugin
Bắt đầu nhanh
Lộ trình học tập

Hướng dẫn

Đăng ký FlowModel
Tạo FlowModel
Render FlowModel
Luồng sự kiện và cấu hình FlowModel
Lưu trữ bền vững FlowModel
Vòng đời FlowModel
Hệ thống ngữ cảnh của FlowModel
Cơ chế phản ứng: Observable
FlowModel vs React.Component

Definitions

ModelDefinition
FlowDefinition
EventDefinition
ActionDefinition
StepDefinition
Previous PageFlowEngine là gì?
Next PageBắt đầu nhanh
TIP

Tài liệu này được dịch bởi AI. Đối với bất kỳ thông tin không chính xác nào, vui lòng tham khảo phiên bản tiếng Anh

#Mối quan hệ giữa FlowEngine và các plugin

FlowEngine không phải là một plugin, mà là một API cốt lõi được cung cấp cho các plugin sử dụng, nhằm kết nối các khả năng cốt lõi với các tiện ích mở rộng nghiệp vụ. Trong NocoBase 2.0, tất cả các API đều được tập trung tại FlowEngine, và các plugin có thể truy cập FlowEngine thông qua this.engine.

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

#Context: Các khả năng toàn cục được quản lý tập trung

FlowEngine cung cấp một Context tập trung, tập hợp các API cần thiết cho nhiều tình huống khác nhau, ví dụ:

class PluginHello extends Plugin {
  async load() {
    // Mở rộng định tuyến
    this.engine.context.router;

    // Thực hiện yêu cầu
    this.engine.context.api.request();

    // Liên quan đến i18n
    this.engine.context.i18n;
    this.engine.context.t('Hello');
  }
}

Lưu ý: Context trong 2.0 đã giải quyết các vấn đề sau từ 1.x:

  • Context phân tán, việc gọi không nhất quán
  • Context bị mất giữa các cây kết xuất React khác nhau
  • Chỉ có thể sử dụng bên trong các component React

Xem thêm chi tiết trong chương FlowContext.


#Các bí danh rút gọn trong plugin

Để đơn giản hóa việc gọi, FlowEngine cung cấp một số bí danh trên thể hiện của plugin:

  • this.context → tương đương với this.engine.context
  • this.router → tương đương với this.engine.context.router

#Ví dụ: Mở rộng định tuyến

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

// Dành cho các tình huống ví dụ và thử nghiệm
const app = createMockClient({
  plugins: [PluginHelloModel],
});

export default app.getRootComponent();

Trong ví dụ này:

  • Plugin đã mở rộng định tuyến cho đường dẫn / bằng phương thức this.router.add;
  • createMockClient cung cấp một ứng dụng Mock sạch, thuận tiện cho việc minh họa và thử nghiệm;
  • app.getRootComponent() trả về component gốc, có thể gắn trực tiếp vào trang.