Add mixin to create and clean up event listeners on components