Angular 默认提供生命周期钩子ngOnInit。
ngOnInit
为什么应该ngOnInit使用,如果我们已经有一个constructor?
constructor
这Constructor是类的默认方法,在类被实例化时执行,并确保类及其子类中的字段的正确初始化。Angular 或更好的依赖注入器 (DI) 分析构造函数参数,并在通过调用它创建新实例new MyClass()时尝试查找与构造函数参数类型匹配的提供程序,解析它们并将它们传递给构造函数,例如
Constructor
new MyClass()
new MyClass(someArg);
ngOnInit是 Angular 调用的生命周期钩子,用于指示 Angular 已完成创建组件。
我们必须OnInit像这样导入才能使用它(实际上实施OnInit不是强制性的,但被认为是好的做法):
OnInit
import { Component, OnInit } from '@angular/core';
然后要使用该方法OnInit,我们必须像这样实现该类:
export class App implements OnInit { constructor() { // Called first time before the ngOnInit() } ngOnInit() { // Called after the constructor and called after the first ngOnChanges() } }
在您的指令的数据绑定属性初始化后,实现此接口以执行自定义初始化逻辑。ngOnInit 在第一次检查指令的数据绑定属性之后,并且在检查其任何子项之前立即调用。当指令被实例化时,它只被调用一次。
大多数情况下,我们ngOnInit用于所有初始化/声明,并避免在构造函数中工作。构造函数应该只用于初始化类成员,而不应该做实际的“工作”。
所以你应该使用constructor()设置依赖注入而不是其他。ngOnInit() 是“开始”的更好地方——它是解决组件绑定的地方/时间。
constructor()