Пакет @tracio/react оборачивает базовый @tracio/sdk и предоставляет идиоматичные примитивы React: провайдер, монтирующий агента, и хуки, которые отдают вам идентификатор посетителя и результат идентификации вместе со статусами загрузки и ошибки.
npm install @tracio/react @tracio/sdkreact (18 или 19) является peer-зависимостью и предполагается уже установленным в вашем приложении.
Оберните ваше приложение в <TracioProvider>. Он монтирует агента TRACIO при первом рендере и автоматически вызывает tracio.destroy(), когда провайдер размонтируется.
import { TracioProvider } from "@tracio/react"
function Root() { return ( <TracioProvider publicKey={process.env.NEXT_PUBLIC_TRACIO_KEY!}> <App /> </TracioProvider> )}| Prop | Тип | Описание |
|---|---|---|
publicKey | string | Ваш публичный ключ. Скопируйте его из панели управления. |
config | TracioConfig | Полный объект конфигурации. Имеет приоритет над плоскими скалярными props ниже. |
endpoint | string | Пользовательский API-эндпоинт (для проксируемого first-party эндпоинта). |
scriptUrl | string | Пользовательский URL для скрипта агента (для проксируемого first-party эндпоинта). |
debug | boolean | Выводит подробную диагностику в консоль. |
timeoutMs | number | Сколько ждать результат до срабатывания тайм-аута (по умолчанию 15000). |
children | ReactNode | Обязательный — оборачиваемое поддерево React. |
Передавайте либо publicKey вместе с плоскими скалярами, либо полный объект config. Если указано и то и другое, побеждает config.
Возвращает стабильный идентификатор посетителя вместе со статусами загрузки и ошибки.
const { data, isLoading, error, isFetched, getId } = useVisitorId()// data: string | undefined — the visitorIdgetId() императивно перезапрашивает идентификатор посетителя.
Возвращает полный TracioResult (идентификатор посетителя плюс обнаружение ботов).
const { data, isLoading, error, isFetched, getData } = useTracioResult()// data: TracioResult | undefinedopts.immediate по умолчанию равно true. Передайте { immediate: false }, чтобы отложить запрос до момента, когда вы сами вызовете getData() — полезно за барьером согласия (consent gate):
const { data, getData } = useTracioResult({ immediate: false })
function onConsent() { getData() // identify only after the user opts in}Запасной выход, возвращающий базовый экземпляр для продвинутого использования.
const { tracio } = useTracio()import { TracioProvider, useVisitorId } from "@tracio/react"function App() { return ( <TracioProvider publicKey={process.env.NEXT_PUBLIC_TRACIO_KEY!}> <Page /> </TracioProvider> )}function Page() { const { data: visitorId, isLoading, error } = useVisitorId() if (isLoading) return <span>Loading…</span> if (error) return <span>Error: {error.message}</span> return <span>Visitor: {visitorId}</span>}@tracio/sdk, на котором строятся хуки