The key distinction that may have eluded you can be found in the Custom Events section:
Moreover, a parent component has the ability to heed events emitted from a child component through direct use of v-on within the template where the child component is placed.
It's important to note that using $on to listen to events emitted by children is not permissible. The correct method mandates employing v-on directly in the template, as exemplified below.
This implies that communication between child and parent components transpires via a directive, utilizing the v-on (or @edit) approach.
Your provided example
mounted: function(){
this.$on('editing',dosomething)
}
will fail to yield results. As per the emit documentation, it clarifies:
Initiate an event on the present instance.
This indicates that when operating within the same component, you are able to utilize this.$on successfully. However, for usage at the parent level, incorporation of the inline directive is essential for successful binding; otherwise, the process will fall short.
Additionally, keep in mind that emits functionality serves solely for a single step, whereby the parent can capture it. Should the need arise for emitting from subchild -> child -> parent, you must receive the event (via inline binding) from subchild within child, and subsequently emit it again to reach the parent level.
If the scenario extends beyond the child-parent arena, resorting to what is referred to as a global bus is advisable. Essentially, this streamlines all operations to a singular instance, which both emits and listens for all events. Consequently, connections are no longer confined to child-parent dynamics but instead converge onto a shared system, allowing unrestricted application across all your components.
In essence - relying on mounted for listening purposes won't yield favorable outcomes. Trust this exegesis guides you accordingly :)