Angular relies heavily on the RxJs library for reactive patterns, and using functional programming paradigms from an event stream. As Angular routes compose different components, events within or outside of the UI push data causing components to render the changes.
If this sounds difficult, hold on, I'll explain