---
title: SDK Vue
---
# SDK Vue
Componente Vue 3 oficial para o CAPTCHA da CaptchaLa — publicado como [`@captcha-la/vue`](https://www.npmjs.com/package/@captcha-la/vue).
## Demonstração ao vivo
::: tip 📦
[demo-v1.captcha.la/vue](https://demo-v1.captcha.la/vue/) — demonstração executável com os quatro modos de produto.
Código-fonte: [Captcha-La/vue-example](https://github.com/Captcha-La/vue-example).
:::
## Instalação
```bash
npm install @captcha-la/vue
# or
yarn add @captcha-la/vue
# or
pnpm add @captcha-la/vue
```
Dependência de peer: `vue@^3.2.0`.
## Início rápido
```vue
```
## Props
| Prop | Tipo | Padrão | Descrição |
|------|------|---------|-------------|
| `appKey` | `string` | *obrigatório* | Chave da aplicação CaptchaLa |
| `serverToken` | `string` | - | Token de desafio emitido pelo servidor, de uso único. Obrigatório quando a aplicação tem `server_token_required=true`. |
| `product` | `'popup' \| 'float' \| 'embed' \| 'bind'` | `'popup'` | Modo de exibição |
| `action` | `string` | `'default'` | Identificador da action (ex.: `login`, `register`, `checkout`) |
| `lang` | `string` | `'zh-CN'` | Código de idioma (`zh-CN`, `en`, `ja`, …) |
| `bindTo` | `string \| HTMLElement` | - | Seletor de elemento ou nó ao qual vincular (somente para `product="bind"`) |
## Eventos
| Evento | Payload | Descrição |
|-------|---------|-------------|
| `success` | `{ token, type, action }` | Verificação bem-sucedida |
| `error` | `error` | Verificação falhou |
| `close` | — | CAPTCHA fechado |
| `ready` | — | CAPTCHA pronto |
## Métodos (via `ref`)
```vue
```
| Método | Descrição |
|--------|-------------|
| `verify()` | Dispara a verificação |
| `reset()` | Reinicia o estado do CAPTCHA |
| `destroy()` | Destrói a instância |
| `bindTo(selector)` | Vincula a um elemento (modo `bind`) |
| `setLang(lang)` | Troca o idioma in-place |
## Produção: modo `serverToken`
Para fluxos de alto valor (login, cadastro, pagamento) recomendamos o **fluxo de
token emitido pelo servidor**. Seu backend cunha um `server_token` de uso único
(TTL de 5 minutos) via `POST /v1/server/challenge/issue` e o entrega ao navegador:
```vue
```
Veja a [Referência da API](/pt-BR/api-reference) para o contrato completo de backend.
## Links
- [npm](https://www.npmjs.com/package/@captcha-la/vue) · [GitHub](https://github.com/Captcha-La/vue) · [exemplo](https://github.com/Captcha-La/vue-example)
- [Visão geral do SDK Web](/pt-BR/web-sdk) · [Referência da API](/pt-BR/api-reference)