Обзор расширений блоков
В NocoBase 2.0 механизм расширения блоков был существенно упрощён. Разработчику достаточно унаследоват ься от соответствующего базового класса FlowModel (модель потока) и реализовать нужные методы интерфейса (в основном метод renderComponent()), чтобы быстро создавать собственные блоки.
Категории блоков
NocoBase делит блоки на три типа, которые отображаются группами в интерфейсе конфигурации:
- Блоки данных: блоки, унаследованные от
DataBlockModelилиCollectionBlockModel - Блоки фильтров: блоки, унаследованные от
FilterBlockModel - Прочие блоки: блоки, напрямую унаследованные от
BlockModel
Группа блока определяется его базовым классом. Логика классификации основана на отношениях наследования и не требует дополнительной конфигурации.
Описание базовых классов
Система предоставляет четыре базовых класса для расширения:
BlockModel
Базовая модель блока — наибо лее универсальный базовый класс блока.
- Подходит для блоков, которые только отображают информацию и не зависят от данных
- Относится к группе Прочие блоки
- Применяется в персонализированных сценариях
DataBlockModel
Модель блока данных (не привязана к коллекции) — для блоков с собственным источником данных.
- Не привязана напрямую к коллекции, можно реализовать произвольную логику получения данных
- Относится к группе Блоки данных
- Подходит для сценариев: вызов внешних API, пользовательская обработка данных, статистические диаграммы и т. п.
CollectionBlockModel
Модель блока коллекции — для блоков, которым требуется привязка к коллекции.
- Требует привязки к базовому классу модели коллекции
- Относится к группе Блоки данных
- Подходит для: списков, форм, канбан-досок и других блоков, которые явно зависят от конкретной коллекции
FilterBlockModel
Модель блока фильтра — для построения блоков с условиями фильтрации.
- Базовый класс модели для построения фильтров
- Относится к группе Блоки фильтров
- Обычно используется совместно с блоками данных
Как выбрать базовый класс
При выборе базового класса можно ориентироваться на следующие принципы:
- Нужно привязать к коллекции: в первую очередь выбирайте
CollectionBlockModel - Нужен собственный источник данных: выбирайте
DataBlockModel - Нужно задавать условия фильтрации и работать с блоками данных: выбирайте
FilterBlockModel - Не уверены, как классифицировать: выбирайте
BlockModel
Быстрый старт
Создание пользовательского блока включает всего три шага:
- Унаследоваться от соответствующего базового класса (например,
BlockModel) - Реализовать метод
renderComponent(), возвращающий React‑компонент - Зарегистрировать модель блока в плагине
Подробный пример смотрите в статье Написание плагина блока.

