Інтеграція - Rete.js

Інтеграція

Архітектура

Цей фреймворк не прив’язаний до будь-якого фреймворку візуалізації інтерфейсу і може бути інтегрований із найпопулярнішими фреймворками/бібліотеками, такими як Angular, Svelte, Lit, Vue.js, React.js. Доступні такі пакети візуалізації:

Основна мета — дати вам змогу вибрати інструменти візуалізації, які відповідають вашим конкретним потребам. Крім того, якщо вам колись знадобиться використати плагін візуалізації для іншого фреймворку у вашій програмі (наприклад, під час міграції проекту), ви можете це легко зробити. Зверніть увагу, що rete-angular-plugin сумісний лише з додатками Angular.

Класичний пресет

Presets

За замовчуванням ви можете використовувати класичний стиль із вбудованими компонентами для:

  • вузлів
  • зв'язків
  • деяких елементів керування (поля введення чисел або тексту)
ts
import { AngularPlugin, AngularArea2D, Presets as AngularPresets } from 'rete-angular-plugin'

const angular = new AngularPlugin<Schemes, AngularArea2D<Schemes>>({ injector })

angular.addPreset(AngularPresets.classic.setup())

area.use(angular)

Фреймворк дозволяє вам замінювати попередньо визначені компоненти будь-якими іншими компонентами відповідно до ваших потреб. Компонент вузла, зокрема, можна широко кастомізувати. Додаткову інформацію дивіться у гайді Кастомізація

Комбінування рендер плагінів

Комбінування

У цій версії фреймворку покращено підходи до комбінування різних фреймворків візуалізації, одночасно забезпечуючи підтримку TypeScript. Наприклад, ви можете рендерити один вузол за допомогою Vue.js, а інший — за допомогою React.js.

ts
import { ReactArea2D, ReactPlugin, Presets as ReactPresets } from 'rete-react-plugin'
import { VueArea2D, VuePlugin, Presets as VuePresets } from 'rete-vue-plugin'

type AreaExtra =
  | ReactArea2D<Schemes>
  | VueArea2D<Schemes>

const reactPlugin = new ReactPlugin<Schemes, AreaExtra>()
const vuePlugin = new VuePlugin<Schemes, AreaExtra>()

reactPlugin.addPreset(ReactPresets.classic.setup({ customize: {
  node(data) {
    if (data.payload instanceof AddNode) return null // запобігти рендерингу AddNode за допомогою React.js
    return ReactPresets.classic.Node
  }
} }))
vuePlugin.addPreset(VuePresets.classic.setup({ customize: {
  node() {
    return VuePresets.classic.Node // відобразити всі вузли, які не були відтворені раніше використовуваним рендер плагіном
  }
} }))

// порядок має значення
area.use(reactPlugin)
area.use(vuePlugin)

Вузол AddNode у цьому прикладі рендериться за допомогою Vue.js, а всі інші вузли рендеряться за допомогою React.js.

Використання кількох фреймворків одночасно може мати недоліки в плані продуктивності, але це також може значно підвищити швидкість створення прототипів, коли time-to-market є критичним.