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.

GrupoReatividade: Avançado
TipoAPI
EscopoNo Componente
Versão do Vue3.0+
Suporte a SSRSim

📝 Sintaxe

onScopeDispose(() => {
  window.removeEventListener('resize', onResize)
})

⚙️ Argumentos

fnFunção de limpeza (pode registrar várias vezes)
failSilentlytrue 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.
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.
Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%