BlockBuilder Logo/
Документация/Быстрый старт
Быстрый стартAPIVueReactДемоИстория изменений
GitHub

Начало работы

Быстрый стартИстория изменений

Справочник API

Обзор APIМетодыСвойстваПоля формТемизация и локализацияУтилитыТипы

Vue 3

Быстрый стартКомпонентыСобытияNuxt (SSR)

React

Быстрый стартКомпонентыКолбэкиNext.js (SSR)
Следующая страница
Компоненты
→

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

Начните использовать BlockBuilder с React — готовый UI и полная интеграция с React-компонентами (React 18+ / 19)

Установка

Установите BlockBuilder и подключите стили редактора:

import "@mushket-co/block-builder/index.esm.css"

TypeScript-типы входят в пакет, отдельная установка @types не нужна.

Основные концепции

BlockBuilderComponent

Основной React-компонент с готовым UI для управления блоками

Ваши компоненты

React-компоненты для рендеринга конкретных типов блоков; регистрируются через blockManagementUseCase.getComponentRegistry()

Config

Конфигурация с доступными типами блоков, их полями и компонентами

Колбэки

Props onBlockAdded, onBlockUpdated, onBlockDeleted для отслеживания изменений

Базовый пример

Создайте компонент блока и подключите BlockBuilderComponent:

1. Создайте компонент блока

Важно: внешние отступы (margin) автоматически применяются на UI блок-обёртку над компонентом. Для внутренних отступов (padding) используйте CSS-переменные, которые устанавливаются автоматически. Подробнее об отступах (spacing) →

2. Используйте BlockBuilderComponent

Множественные типы блоков

Вы можете определить несколько типов блоков с разными компонентами и полями:

Важно: при использовании uploadUrl (загрузка через сервер API клиента) ответ сервера ОБЯЗАТЕЛЬНО должен быть объектом с полем src, содержащим URL изображения. Если формат ответа отличается, используйте responseMapper для преобразования ответа к виду объекта с вашими полями и обязательным полем src. Подробнее — поля image и file →

Режим редактирования/просмотра

BlockBuilder поддерживает два режима работы. Используйте prop isEdit для управления режимом:

Что происходит в режиме просмотра?

  • Скрываются все контролы редактирования, добавления и управления блоками
  • Остаётся только пользовательская верстка блоков в обёртке BlockBuilder
  • С элемента body снимается CSS-класс bb-is-edit-mode (добавляется только в режиме редактирования)

💡 Важные моменты

  • •Регистрация компонентов — создайте createBlockManagementUseCase() один раз (например, в useMemo) и зарегистрируйте React-компоненты блоков через getComponentRegistry().register(type, Component)
  • •Отступы (spacing) — BlockBuilder автоматически добавляет поля отступов в форму настроек блока, если указано spacingOptions.enabled: true. Внешние отступы (margin) применяются автоматически на UI блок-обёртку; для внутренних (padding) используйте CSS-переменные: --spacing-padding-top и --spacing-padding-bottom
  • •Свойства блока — ваш компонент получает prop block с полями id, type, props, settings
  • •Сохранение — используйте колбэк onSave для сохранения блоков (localStorage для разработки или API для продакшена)
  • •Колбэки — onBlockAdded / onBlockUpdated / onBlockDeleted для синхронизации с бэкендом
  • •Режим просмотра — используйте isEdit={false} для отображения блоков без возможности редактирования

Core без BlockBuilderComponent

Если нужен свой UI редактора, используйте @mushket-co/block-builder/core напрямую. В React создайте экземпляр в useEffect, храните в useRef или state, вызывайте методы через await blockBuilder.createBlock(...).

Справочник методов и типов — Обзор API, Методы. Пример — examples/react18.

Next.js (SSR)

Для серверного рендеринга с Next.js App Router см. раздел Next.js (SSR). Живой пример — examples/next в репозитории block-builder (не в demo-bb).

Что дальше?

  • → API BlockBuilderComponent
  • → Колбэки onBlockAdded / Updated / Deleted
  • → Поля форм
  • → Интерактивное демо (demo-bb)
  • → История изменений