Быстрый старт: создание оркестрируемого компонента кнопки
В React компонент кнопки обычно рендерится так:
Хотя пример выше простой, это статический компонент, и он не покрывает требования no-code платформы к настраиваемости и оркестрации.
В движке потоков NocoBase можно быстро собирать компоненты с поддержкой конфигурации и управлением по событиям, используя модель потока (FlowModel) + определение потока (FlowDefinition).
Шаг 1: рендер компонента через модель потока (FlowModel)
🧠 Ключевые идеи
- Модель потока (
FlowModel) — базовая модель компонента в движке потоков, инкапсулирующая логику компонента, рендер и возможности конфигурации. - Любой UI-компонент можно единообразно создавать и управлять им через модель потока (
FlowModel).
📌 Шаги реализации
1. Создайте пользовательский класс модели
2. Создайте экземпляр модели
3. Выполните рендер через <FlowModelRenderer />
Шаг 2: добавьте PropsFlow, чтобы свойства кнопки стали настраиваемыми
💡 Зачем использовать PropsFlow?
Использование потока (Flow) вместо статических props даёт:
- Динамическую конфигурацию
- Визуальное редактирование
- Воспроизведение состояния и персистентность
🛠 Ключевые изменения
1. Определите поток (Flow) для свойств кнопки
2. Используйте stepParams вместо статических props
✅ Использование
stepParams— рекомендуемый подход в движке потоков, так как он избегает проблем с несериализуемыми данными (например React-компонентами).
3. Включите интерфейс конфигурации свойств
Шаг 3: добавьте поддержку потока событий кнопки (EventFlow)
🎯 Сценарий: показывать диалог подтверждения после клика по кнопке
1. Обработка события onClick
Добавление onClick неинвазивным способом
2. Определите event flow
Дополнительные замечания:
- EventFlow позволяет гибко настраивать поведение кнопки через flow: показывать диалоги, сообщения, выполнять API-вызовы и т.д.
- Можно регистрировать разные event flow для разных событий (например
onClick,onMouseEnterи т.д.), чтобы покрывать сложные бизнес-требования.
3. Настройте параметры event flow
При создании модели можно задать параметры event flow по умолчанию через stepParams:
Сравнение моделей: ReactComponent и модель потока (FlowModel)
Поток не меняет способ реализации компонентов. Он добавляет в ReactComponent поддержку PropsFlow и EventFlow, позволяя визуально настраивать и оркестрировать свойства и события компонента.

ReactComponent
Модель потока (FlowModel)
Итог
За три шага мы собрали компонент кнопки с поддержкой конфигурации и оркестрации событий, получив следующие преимущества:
- 🚀 Визуальная настройка свойств (title, type, icon)
- 🔄 Управление реакцией на события через flow (например, клик показывает диалог)
- 🔧 Поддержка дальнейших расширений (условная логика, привязка переменных и т.д.)
Этот паттерн применим к любым UI-компонентам: формам, спискам, графикам. В движке потоков NocoBase можно оркестрировать всё.

