---
title: Vue SDK
---
# Vue SDK
Официальный компонент Vue 3 для CAPTCHA CaptchaLa — опубликован как [`@captcha-la/vue`](https://www.npmjs.com/package/@captcha-la/vue).
## Живое демо
::: tip 📦
[demo-v1.captcha.la/vue](https://demo-v1.captcha.la/vue/) — рабочее демо со всеми четырьмя режимами product.
Исходный код: [Captcha-La/vue-example](https://github.com/Captcha-La/vue-example).
:::
## Установка
```bash
npm install @captcha-la/vue
# or
yarn add @captcha-la/vue
# or
pnpm add @captcha-la/vue
```
Peer-зависимость: `vue@^3.2.0`.
## Быстрый старт
```vue
```
## Props
| Prop | Тип | По умолчанию | Описание |
|------|------|---------|-------------|
| `appKey` | `string` | *обязательно* | Ключ приложения CaptchaLa |
| `serverToken` | `string` | - | Одноразовый Token запроса, выданный сервером. Обязателен, если у приложения `server_token_required=true`. |
| `product` | `'popup' \| 'float' \| 'embed' \| 'bind'` | `'popup'` | Режим отображения |
| `action` | `string` | `'default'` | Идентификатор действия (например `login`, `register`, `checkout`) |
| `lang` | `string` | `'zh-CN'` | Код языка (`zh-CN`, `en`, `ja`, …) |
| `bindTo` | `string \| HTMLElement` | - | Селектор элемента или узел для привязки (только для `product="bind"`) |
## События
| Событие | Payload | Описание |
|-------|---------|-------------|
| `success` | `{ token, type, action }` | Проверка успешна |
| `error` | `error` | Проверка не удалась |
| `close` | — | CAPTCHA закрыта |
| `ready` | — | CAPTCHA готова |
## Методы (через `ref`)
```vue
```
| Метод | Описание |
|--------|-------------|
| `verify()` | Запустить проверку |
| `reset()` | Сбросить состояние CAPTCHA |
| `destroy()` | Уничтожить экземпляр |
| `bindTo(selector)` | Привязка к элементу (для режима `bind`) |
| `setLang(lang)` | Переключить язык на лету |
## Production: режим `serverToken`
Для ответственных потоков (вход, регистрация, оплата) мы рекомендуем **поток
Token, выданного сервером**. Ваш backend выпускает одноразовый `server_token`
(TTL 5 минут) через `POST /v1/server/challenge/issue` и передаёт его в браузер:
```vue
```
См. [Справочник API](/ru/api-reference) для полного backend-контракта.
## Ссылки
- [npm](https://www.npmjs.com/package/@captcha-la/vue) · [GitHub](https://github.com/Captcha-La/vue) · [example](https://github.com/Captcha-La/vue-example)
- [Обзор Web SDK](/ru/web-sdk) · [Справочник API](/ru/api-reference)