onScopeDispose() Register a Scope Disposal Callback
Last updated: 2026-10-22
onScopeDispose() Register a Scope Disposal Callback
onScopeDispose() runs a cleanup when the current scope stops — composables use it to unregister listeners and timers.
| Group | Reactivity: Advanced |
|---|---|
| Kind | API |
| Scope | Component |
| Vue Version | 3.0+ |
| SSR Support | Yes |
📝 Syntax
onScopeDispose(() => {
window.removeEventListener('resize', onResize)
})
⚙️ Arguments
| fn | The cleanup function (may be registered several times) |
|---|---|
| failSilently | true suppresses the error when no scope exists (3.5+) |
Returns:None
▶ Example
Edit the code below and see the live result:
Output:
Shows the current window width, updating as you resize.
💡 Key Points
ℹ️ Note Unlike onUnmounted it binds to any scope, not only component unmount.
💡 Tip Prefer it in composables so cleanup works inside effectScope too.
⚠️ Warning Call it synchronously inside an active scope.
🏷️ Related Advanced
💡 Related Cases
More case studies coming soon.
📚 Related Tutorials
❓ FAQ
Q onScopeDispose or onUnmounted?
A Use onUnmounted in components and onScopeDispose in reusable functions.
Q Can I register several?
A Yes — they run in registration order.
Q What if no scope is active?
A It warns; 3.5+ can silence this with the failSilently argument.