ngOnInit与Angular中的构造函数

ngOnInit与Angular中的构造函数,angular,Angular,从这里开始: ngOnInit:在初始化组件时由Angular调用 构造函数:在创建类的对象时自动调用构造函数 我们如何知道组件何时初始化?哪个职能部门对此负责 恩戈尼尼:在调用时一切都准备就绪。 构造函数:并不是组件中的所有内容都在调用时初始化 在调用时准备好的“一切”是什么 一种回调方法,在默认更改检测器第一次检查指令的数据绑定属性之后,,并且在检查任何视图或内容子项之前立即调用。当指令实例化时,只调用一次 另外,请解释上面引用的粗体行。以下是组件生命周期中各种功能的执行顺序 建造师 一

从这里开始:

ngOnInit:在初始化组件时由Angular调用
构造函数:在创建类的对象时自动调用构造函数

我们如何知道组件何时初始化?哪个职能部门对此负责

恩戈尼尼:在调用时一切都准备就绪。
构造函数:并不是组件中的所有内容都在调用时初始化

在调用时准备好的“一切”是什么

一种回调方法,在默认更改检测器第一次检查指令的数据绑定属性之后,并且在检查任何视图或内容子项之前立即调用。当指令实例化时,只调用一次


另外,请解释上面引用的粗体行。

以下是组件生命周期中各种功能的执行顺序

  • 建造师
  • 一旦改变
  • 奥尼特
  • 多切克
  • AfterContentInit
  • 事后检查
  • AfterViewInit
  • 事后检查
  • 探空

因此,在调用构造函数时,更改检测尚未完成,一些变量可能尚未初始化(例如,带有
@input()
decorator的输入变量)。但是,当点击
ngOnInit()
时,组件已经正确初始化。

也许这可以更好地解释这一点<代码>我们如何知道组件何时初始化?哪个职能部门对此负责?← 当调用
ngOnInit
时,这就是它存在的原因,这就是“您知道”的方式。这是否回答了您的问题?非常感谢。如果我们初始化构造函数中的变量,那么它们将首先被初始化。为什么不是首选?理论上,一个变量可能依赖于另一个变量,而该变量在构造函数中可能还不可用或未正确初始化。如果要用常量初始化变量,那么这无关紧要。它也可以在构造函数外部的变量定义中完成。