According to the Angular documentation (https://angular.io/api/core/OnInit), ngOnInit is called immediately after the directive's data-bound properties are checked for the first time, but before any of its children are checked. It is a one-time invocation when the directive is created.
Although ngOnInit should be called only once, in the example provided by the plunker (taken from https://angular.io/tutorial/toh-pt5), I made modifications to both app/heroes/heroes.component.ts and app/dashboard/dashboard.component.ts to include console.log statements.
Upon opening the Developer Tools (F12), the console displayed repeated logs when the route was changed.
I researched various sources such as why ngOnInit is called twice?, the difference between Constructor and ngOnInit, Angular 2 App Component ngOnInit being called twice when using iframe, and ngOnInit being called every time the route is changed.
However, I could not comprehend why ngOnInit was triggering on each route change.
console.log("ngOnInit in All Heroes");
console.log("ngOnInit InDashBoard");