13
2020
10

Constructor 和 ngOnInit 的本质区别

Constructor 

在ES6中 constructor表示构造函数,使用在class中。来初始化操作。当类被初始化之后,构造函数会被调用


ngOnInit

ngOnInit 是angular中OnInit钩子的实现,用来初始化组件。


ngOnInit  : 在angular 第一次显示数据绑定和设置指令、组件的输入属性之后,初始化指令、组件


所以从angular的生命周期看,constructor是执行在先的


所以既然ngOnchanges是输入属性发生变化的时候调用,并且ngOnInit是在ngOnchanges执行之后才调用,而constructor是在组件实例化的时候就调用了,也就是说,在constructor中是取不到输入属性的值的。


使用场景

constructor 中不适合进行任何和组件通信类似的复杂操作,一般在constructor中进行一些简单的初始化操作,比如依赖注入、变量初始化等。

ngOnInit可以用来初始化组件之间通信的,如异步请求等

« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。