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

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

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

Справочник API

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

Vue 3

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

React

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

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

Начните использовать BlockBuilder с Vue3 — готовый UI и полная интеграция с Vue компонентами

Установка

Установите BlockBuilder и убедитесь, что у вас установлен Vue 3:

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

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

BlockBuilderComponent

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

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

Vue компоненты, которые используются для рендеринга конкретных типов блоков

Config

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

События

События для отслеживания создания, обновления и удаления блоков

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

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

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

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

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

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

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

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

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

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

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

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

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

  • •Отступы (spacing) — BlockBuilder автоматически добавляет поля отступов в форму настроек блока, если указано spacingOptions.enabled: true. Внешние отступы (margin) применяются автоматически на UI блок-обёртку; для внутренних (padding) используйте CSS-переменные: --spacing-padding-top и --spacing-padding-bottom
  • •Свойства блока — ваш компонент получает объект block с полями id, type, props, settings
  • •Сохранение — используйте колбэк onSave для сохранения блоков (localStorage для разработки или API для продакшена)
  • •События — подписывайтесь на события компонента для синхронизации с вашим бэкендом
  • •Режим просмотра — используйте :isEdit="false" для отображения блоков в режиме только просмотра без возможности редактирования

Core без BlockBuilderComponent

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

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

Nuxt (SSR)

Для серверного рендеринга с Nuxt 3/4 см. раздел Nuxt (SSR). Живые примеры — examples/nuxt3 и examples/nuxt4 в репозитории block-builder (не в demo-bb).