Gói @tracio/react bao bọc lõi @tracio/sdk và cung cấp các primitive React đúng phong cách: một provider để mount agent, cùng các hook trả về cho bạn visitor ID và kết quả nhận diện kèm trạng thái loading và lỗi.
npm install @tracio/react @tracio/sdkreact (18 hoặc 19) là một peer dependency và được giả định là đã được cài đặt sẵn trong ứng dụng của bạn.
Bao bọc ứng dụng của bạn bằng <TracioProvider>. Nó mount agent TRACIO ở lần render đầu tiên và tự động gọi tracio.destroy() khi provider bị unmount.
import { TracioProvider } from "@tracio/react"
function Root() { return ( <TracioProvider publicKey={process.env.NEXT_PUBLIC_TRACIO_KEY!}> <App /> </TracioProvider> )}| Prop | Kiểu | Mô tả |
|---|---|---|
publicKey | string | Public key của bạn. Sao chép từ dashboard của bạn. |
config | TracioConfig | Đối tượng config đầy đủ. Được ưu tiên hơn các prop scalar phẳng bên dưới. |
endpoint | string | Endpoint API tùy chỉnh (cho một endpoint proxy first-party). |
scriptUrl | string | URL tùy chỉnh cho script agent (cho một endpoint proxy first-party). |
debug | boolean | Ghi log chẩn đoán chi tiết ra console. |
timeoutMs | number | Thời gian chờ kết quả trước khi hết thời gian (mặc định 15000). |
children | ReactNode | Bắt buộc — cây con React cần bao bọc. |
Truyền vào hoặc publicKey cùng các scalar phẳng, hoặc một đối tượng config hoàn chỉnh. Khi cả hai được cung cấp, config sẽ thắng.
Trả về định danh visitor ổn định kèm trạng thái loading và lỗi.
const { data, isLoading, error, isFetched, getId } = useVisitorId()// data: string | undefined — the visitorIdgetId() lấy lại visitor ID một cách chủ động.
Trả về TracioResult đầy đủ (visitor ID cùng phát hiện bot).
const { data, isLoading, error, isFetched, getData } = useTracioResult()// data: TracioResult | undefinedopts.immediate mặc định là true. Truyền { immediate: false } để hoãn việc lấy dữ liệu cho đến khi bạn tự gọi getData() — hữu ích khi đặt sau một cổng đồng ý (consent gate):
const { data, getData } = useTracioResult({ immediate: false })
function onConsent() { getData() // identify only after the user opts in}Lối thoát (escape hatch) trả về instance nền tảng bên dưới cho các trường hợp sử dụng nâng cao.
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 mà các hook được xây dựng trên đó