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

Вступ

Що таке FlowEngine?
FlowEngine та плагіни
Швидкий старт
План навчання

Посібник

Реєстрація FlowModel
Створення FlowModel
Рендеринг FlowModel
Потік подій та конфігурація FlowModel
Збереження FlowModel
Життєвий цикл FlowModel
Система контексту FlowModel
Реактивний механізм: Observable
FlowModel vs React.Component

Визначення

ModelDefinition
FlowDefinition
EventDefinition
ActionDefinition
StepDefinition
Previous PageСистема контексту FlowModel
Next PageFlowModel vs React.Component
Повідомлення про переклад ШІ

Ця документація була автоматично перекладена штучним інтелектом.

#Механізм реактивності: Observable

INFO

Механізм реактивності Observable в NocoBase по суті схожий на MobX. Поточна базова реалізація використовує @formily/reactive, і її синтаксис та концепції дуже сумісні з MobX. Його не використовували безпосередньо лише з історичних причин.

У NocoBase 2.0 реактивні об'єкти Observable зустрічаються повсюдно. Вони є ядром базового потоку даних та реактивності інтерфейсу користувача, і широко використовуються в таких компонентах, як FlowContext, FlowModel та FlowStep.

#Чому варто обрати Observable?

NocoBase обрав Observable замість інших рішень для керування станом, таких як Redux, Recoil, Zustand та Jotai, з наступних основних причин:

  • Надзвичайна гнучкість: Observable може зробити будь-який об'єкт, масив, Map, Set тощо реактивним. Він природно підтримує глибоку вкладеність та динамічні структури, що робить його дуже придатним для складних бізнес-моделей.
  • Невтручання: Ви можете безпосередньо маніпулювати вихідним об'єктом, не визначаючи дії (actions), редюсери (reducers) або додаткові сховища (stores), що забезпечує чудовий досвід розробки.
  • Автоматичне відстеження залежностей: Обгорнувши компонент за допомогою observer, компонент автоматично відстежує властивості Observable, які він використовує. При зміні даних інтерфейс користувача автоматично оновлюється без необхідності ручного керування залежностями.
  • Підходить для сценаріїв, що не стосуються React: Механізм реактивності Observable застосовний не лише до React, але також може поєднуватися з іншими фреймворками для задоволення ширшого спектру потреб у реактивних даних.

#Навіщо використовувати observer?

observer відстежує зміни в об'єктах Observable та автоматично запускає оновлення компонентів React, коли дані змінюються. Це дозволяє підтримувати синхронізацію вашого інтерфейсу користувача з даними без необхідності вручну викликати setState або інші методи оновлення.

#Базове використання

import React from 'react';
import { Input } from 'antd';
import { observer, observable } from '@nocobase/flow-engine';

const obs = observable.deep({
  value: 'aa'
});

const MyComponent = observer(() => {
  return (
    <div>
      <Input
        defaultValue={obs.value}
        onChange={(e) => {
          obs.value = e.target.value;
        }}
      />
      <div>{obs.value}</div>
    </div>
  );
});

export default MyComponent;

Щоб дізнатися більше про реактивне використання, зверніться до документації @formily/reactive.