2.) I know what reactive programming is, I make extensive use of RxJS at work. And I obviously know what an event listener is. I was asking why is it wrong to have the button have functionality and only emit events. And I did google that, but nothing from your comment you posted that I googled lead to anything about reactive programming.
https://en.m.wikipedia.org/wiki/Reactive_programming
https://developer.mozilla.org/en-US/docs/Web/API/EventTarget...