[Vapor] fallthrough v-on listeners erase the root's own listener when the root is `<component :is>` or the listener is bound via `v-bind`.
Author: arkida39Created Sep 24, 2026Updated Sep 24, 2026
Vue version
3.6.0-rc.9
Link to minimal reproduction
Steps to reproduce
For component :is case:
- When clicking on non-vapor component, console prints:
Broot Bparent - When clicking on vapor component, console prints:
Aparent
For v-bind case:
- When clicking on non-vapor component, console prints:
EmitBroot EmitBparent - When clicking on vapor component, console prints:
EmitAparent
What is expected?
As in Non-Vapor case, both listeners are ran one after another, as described in: https://vuejs.org/guide/components/attrs.html#v-on-listener-inheritance
What is actually happening?
In Vapor case, the original listener is completely overwritten.
System Info
Any additional comments?
Interestingly enough, it works correctly (both listeners are called in the correct order), when the root component and listener binding is "static", i.e. button with @click. See the code for CompNormalA.vue in the reproducer.
Source: vuejs/core