Уведомление о переводе ИИ

Эта документация была автоматически переведена ИИ.

Обзор расширений блоков

В NocoBase 2.0 механизм расширения блоков был значительно упрощен. Разработчикам достаточно унаследовать соответствующий базовый класс FlowModel и реализовать необходимые методы интерфейса (в основном метод renderComponent()), чтобы быстро создавать собственные блоки.

Категории блоков

NocoBase делит блоки на три категории, которые отображаются в группах в интерфейсе конфигурации:

  • Блоки данных (Data blocks): Блоки, наследующие DataBlockModel или CollectionBlockModel.
  • Блоки фильтров (Filter blocks): Блоки, наследующие FilterBlockModel.
  • Другие блоки (Other blocks): Блоки, напрямую наследующие BlockModel.

Группировка блоков определяется соответствующим базовым классом. Логика классификации основана на отношениях наследования и не требует дополнительной настройки.

Описание базовых классов

Система предоставляет четыре базовых класса для расширений:

BlockModel

Базовая модель блока, самый универсальный базовый класс для блоков.

  • Подходит для блоков, предназначенных только для отображения и не зависящих от данных.
  • Относится к группе Other blocks (Другие блоки).
  • Применим для индивидуальных сценариев.

DataBlockModel

Модель блока данных (не привязанная к таблице данных), предназначена для блоков с пользовательскими источниками данных.

  • Не привязывается напрямую к таблице данных, позволяет настраивать логику получения данных.
  • Относится к группе Data blocks (Блоки данных).
  • Применим для: вызова внешних API, пользовательской обработки данных, статистических диаграмм и т.д.

CollectionBlockModel

Модель блока коллекции, для блоков, которые должны быть привязаны к таблице данных.

  • Базовый класс модели, требующий привязки к таблице данных.
  • Относится к группе Data blocks (Блоки данных).
  • Применим для: списков, форм, канбан-досок и других блоков, явно зависящих от определенной таблицы данных.

FilterBlockModel

Модель блока фильтра, используется для создания блоков условий фильтрации.

  • Базовый класс модели для построения условий фильтрации.
  • Относится к группе Filter blocks (Блоки фильтров).
  • Обычно работает в связке с блоками данных.

Как выбрать базовый класс

При выборе базового класса вы можете следовать следующим принципам:

  • Если требуется привязка к определенной таблице данных: Отдайте предпочтение CollectionBlockModel.
  • Если источник данных пользовательский: Выберите DataBlockModel.
  • Если блок предназначен для установки условий фильтрации и взаимодействия с блоками данных: Выберите FilterBlockModel.
  • Если вы не уверены, как классифицировать блок: Выберите BlockModel.

Быстрый старт

Создание пользовательского блока требует всего три шага:

  1. Унаследуйте соответствующий базовый класс (например, BlockModel).
  2. Реализуйте метод renderComponent(), который возвращает React-компонент.
  3. Зарегистрируйте модель блока в плагине.

Подробные примеры вы найдете в разделе Написание плагина блока.