Is there a description of how react avoids event listeners?
How does it observe changes in a model?
I've never heard that aspect associated with react before.
It doesn't avoid them. You listen to events, and then you change your model. Based on new model view is rendered using the code you provide (one way rendering - model to code). Then React compares the two instances of rendered view (before the event and after) and renders the changes if there are any.