Reactive programming in the core framework
An Angular application is a reactive system. The user clicks on a button, the application reacts to this event and updates the model. The model gets updated, the application propagates the changes through the component tree.
Angular implements these two arrows very differently. Let's explore why.
Events and state
To understand why Angular uses two very different ways of reactive programming, we need to look at the differences between events and the state.
We often talk about events or event streams when discussing reactivity. Event streams are an important category of reactive objects, but so is state. So let's compare their properties.
Events are discrete and cannot be skipped. Every single event matters, including the order in which the events are emitted. The "most recent event" is not a special thing we care about...