根据 Angular(https://angular.io/api/core/OnInit)的说法,ngOnInit "在指令的数据绑定属性首次检查后立即调用,以及在任何子级被检查之前。它仅在指令实例化时调用一次."
因此,ngOnInit应该只会被调用一次,但是如这个示例所示(是从https://angular.io/tutorial/toh-pt5复制的),我只对app/heroes/heroes.component.ts和app/dashboard/dashboard.component.ts进行了修改,添加了console.log。
当按F12(开发者工具)打开时,每次路由更改时控制台都会重复显示日志。
我查看了为什么ngOnInit会被调用两次?、构造函数和ngOnInit之间的区别、使用iframe时Angular 2 App Component的ngOnInit会被调用两次、我每次更改路由时都会调用ngOnInit,但无法理解为什么ngOnInit会被反复调用。
console.log("ngOnInit in All Heroes");
console.log("ngOnInit InDashBoard");