@exode-team/sdk/miniapp/react предоставляет декларативный слой над ExodeMiniApp для React-приложений. Все хуки реактивные: при событиях хоста компоненты автоматически перерендериваются.
React — опциональная peer-зависимость. Если в проекте нет React, этот модуль не нужен — используйте ванильный клиент.
Provider
Оборачивает приложение, создаётExodeMiniApp, выполняет handshake и распространяет подписки на события:
Параметры
ExodeMiniAppProviderConfig
обязательно
Конфигурация клиента:
appId, targetOrigin?, timeout? (см. параметры ExodeMiniApp) плюс renderMode?.useExodeApp
Состояние подключения и низкоуровневый доступ к инстансуExodeMiniApp.
В режиме
renderMode: 'defer' (по умолчанию) дети провайдера не монтируются, пока идёт handshake, поэтому
ветка «Соединение с Exode…» из примера выше не отрисуется. Чтобы показывать состояние загрузки, используйте
renderMode: 'immediate'.useExodeUser
Текущий пользователь. Обновляется на событииuser:updated. isLoggedIn — true, если user.id > 0;
для неавторизованного посетителя страницы хост передаёт user.id === 0.
useExodeTheme
Текущая тема. Обновляется на событииtheme:changed. Также возвращает isReady — получена ли тема от хоста.
useExodeSchool
Данные школы. Обновляется на событииschool:updated.
useExodeConfig
Конфигурация окружения. Обновляется на событииconfig:updated.
useExodeNavigation
Команды навигации основного приложения.navigate(path, params) принимает шаблон маршрута и параметры —
см. раздел «Навигация» в Клиент ExodeMiniApp.
useExodeUI
UI-команды к хосту.minimize работает только для страниц с типом окна «Плавающее окно», «Панель справа» или «Во весь экран»
(см. Кастомные страницы). Отследить сворачивание можно
хуком useExodeVisibility. setHeaderVisible на кастомных страницах пока ничего не меняет.useExodeVisibility
Видно ли приложение пользователю прямо сейчас. Хост не выгружает iframe при уходе на другую страницу и при сворачивании окна — вместо этого он присылаетvisibility:changed. Используйте
хук, чтобы останавливать опросы, видео и анимации в фоне.
useExodeInitData
Подписанная строка Init Data из адреса iframe (#exodeInitData=...).
Значение читается один раз, удаляется из адресной строки и кэшируется. Провайдер для этого хука не нужен.
Отправьте строку на свой бэкенд и проверьте её там функцией verifyInitData — в браузере ей доверять нельзя.
Требования
Полный пример
Обновлено: 2026-09-28 05:04 UTC