Abhishek, the author of this article, has been playing around with Angular a lot lately and a lot of things that seemed unnecessary in the beginning is starting to make sense. Angular is a well thought out framework, and although it is very opinionated, it follows some of the industry best practices when it comes to structuring the frontend of a web application.
Angular uses NgZone/Zone.js to know when to trigger UI update (change detection) when our app data state changes. It brilliantly utilized the events emitted by Zone.js when async operations are performed to detect when to run a change detection cycle.
In some of Roelof's previous posts, “AngularJS + Angular (v6) hybrid (finally!)” and “Sharing state between AngularJS and Angular v6 with Redux”, he's documented the process of making a hybrid AngularJS/Angular application.