onScopeDispose() Registrar callback de destruição do escopo
Última atualização: 2026-10-22
onScopeDispose() Registrar callback de destruição do escopo
onScopeDispose() executa a limpeza quando o escopo atual é interrompido: ao escrever composables, use-o para cancelar listeners globais, timers e outros recursos.
| Grupo | Reatividade: Avançado |
|---|---|
| Tipo | API |
| Escopo | No Componente |
| Versão do Vue | 3.0+ |
| Suporte a SSR | Sim |
📝 Sintaxe
onScopeDispose(() => {
window.removeEventListener('resize', onResize)
})
⚙️ Argumentos
| fn | Função de limpeza (pode registrar várias vezes) |
|---|---|
| failSilently | true para não dar erro quando não há escopo ativo (3.5+) |
Retorno:Nada
▶ Exemplo
Edite o código abaixo e veja o resultado ao vivo:
Saída:
Shows the current window width, updating as you resize.
💡 Pontos-chave
ℹ️ Nota Diferença de onUnmounted: ele se vincula ao escopo (incluindo effectScope), não se limitando à desmontagem do componente.
💡 Dica Nos composables, prefira-o: mesmo que o usuário chame dentro de um effectScope, a limpeza funciona corretamente.
⚠️ Aviso Deve ser chamado sincronamente dentro de um escopo ativo; chamar em callbacks assíncronos dá erro.
🏷️ Avançado relacionados
💡 Casos Relacionados
Mais casos em breve.
📚 Tutoriais Relacionados
❓ FAQ
P onScopeDispose ou onUnmounted?
R Escrevendo em componentes, use onUnmounted; escrevendo em funções reutilizáveis, onScopeDispose é mais universal.
P Dá para registrar várias funções de limpeza?
R Sim, elas executam em ordem de registro.
P O que acontece sem escopo ativo?
R Emite um aviso; a partir do 3.5+ é possível tratar silenciosamente com o segundo parâmetro failSilently.