Skip to main content
Модуль @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 — в браузере ей доверять нельзя.

Требования

Все хуки, кроме useExodeInitData, работают только внутри <ExodeMiniAppProvider>. Вызов за его пределами выбросит ошибку.

Полный пример


Обновлено: 2026-09-28 05:04 UTC