Angular 2组件构造函数 vs OnInit

27 浏览
0 Comments

Angular 2组件构造函数 vs OnInit

这个问题已经在这里有答案了:

构造函数和ngOnInit之间的区别

如果我想让函数x在每次组件加载时都发生,无论是第一次还是第五次加载,或者在导航到不同站点并返回时都发生。

我应该把函数x放在哪里?组件构造函数还是OnInit中?

admin 更改状态以发布 2023年5月20日
0
0 Comments

第一个(构造函数)与类实例化有关,与Angular2无关。我的意思是构造函数可以用于任何类。你可以在它里面放一些新创建的实例的初始化处理。

第二个对应于Angular2组件的生命周期钩子:

  • ngOnChanges在输入或输出绑定值改变时调用
  • ngOnInit在第一个ngOnChanges之后调用

因此,如果您的函数的初始化处理依赖于组件的绑定(例如使用@Input定义的组件参数),则应使用ngOnInit,否则构造函数就足够了...

0
0 Comments

构造函数是TypeScript类的预定义默认方法。Angular与constructor没有关联。通常我们使用constructor来定义/初始化一些变量,但当我们有与Angular绑定相关的任务时,我们转向Angular的ngOnInit生命周期钩子。 ngOnInit在构造函数调用后立即调用。我们也可以在构造函数中做同样的工作,但最好使用ngOnInit启动Angular的绑定。

为了使用ngOnInit,我们必须从核心库中导入此钩子:

import {Component, OnInit} from '@angular/core'

然后我们在导出的类中实现此接口(这不是强制实现此接口,但通常我们这样做)。

同时使用的示例:

export class App implements OnInit{
  constructor(){
     //called first time before the ngOnInit()
  }
  ngOnInit(){
     //called after the constructor and called  after the first ngOnChanges() 
  }
}

更多详情请参见:构造函数与ngOnInit之间的区别

0