# API do Escopo de Efeito 3.2+
INFO
Escopo de efeito é uma API avançada destinada principalmente a autores de bibliotecas. Para obter detalhes sobre como aproveitar essa API, consulte o RFC (opens new window) correspondente.
# effectScope
Cria um objeto de escopo de efeito que pode capturar os efeitos reativos (por exemplo, computados e observadores) criados dentro dele para que esses efeitos possam ser descartados juntos.
Tipando:
function effectScope(detached?: boolean): EffectScope
interface EffectScope {
run<T>(fn: () => T): T | undefined // indefinido se o escopo estiver inativo
stop(): void
}
2
3
4
5
6
Exemplo:
const scope = effectScope()
scope.run(() => {
const doubled = computed(() => counter.value * 2)
watch(doubled, () => console.log(doubled.value))
watchEffect(() => console.log('Contagem: ', doubled.value))
})
// para descartar todos os efeitos no escopo
scope.stop()
2
3
4
5
6
7
8
9
10
11
12
# getCurrentScope
Retorna o escopo de efeito atualmente ativo se houver um.
Tipando:
function getCurrentScope(): EffectScope | undefined
# onScopeDispose
Registra um callback de descarte no escopo de efeito atualmente ativo. O callback será invocado quando o escopo de efeito associado for interrompido.
Este método pode ser usado como um substituto de onUnmounted
"não acoplado a componentes" em funções de composição reutilizáveis, uma vez que a função setup()
de cada componente Vue também é invocada em um escopo de efeito.
Tipando:
function onScopeDispose(fn: () => void): void