AngularJS中构造函数和ngOnInit之间的区别是什么
构造器:构造器是一个类的默认方法,当一个类被安装时,它被创建,并确保该类及其子部分的角色的正确执行。Angular最好是依赖性注入器(DI),分析构建器的组件,当通过调用new MyClass()创建一个新功能时,试图找到与构建器的参数类型相匹配的供应商,解决它们并将它们传递给类似的组件。
new MyClass(someArg);
示例:
var AddNumbers= (function () {
function AddNumbers(x, y) {
this.x = x;
this.y = y;
}
AddNumbers.prototype.add = function () {
return this.x + point.x;
};
return AddNumbers;
})();
var numbers = new AddNumbers(2, 4);
var additionOfNumbers = numbers.add();
console.log(additionOfNumbers);
输出:
6
ngOnInit: OnInit是一个叫做Angular的生命周期部件,以表明Angular是为了创建一个组件而制作的。我们必须像这样导入OnInit才能使用它(实际上使用OnInit并不是必须的,但它被认为是好的)。
语法:
import {Component, OnInit} from '@ angular / core';
并使用它来执行OnInit方法,我们应该使用这样的一个部分。
示例:
import { Component, OnInit } from '@angular/core';
@Component({
selector:'app-checkbox',
templateUrl:'./checkbox.component.html',
styleUrls: ['./checkbox.component.css']
})
export class CheckboxComponent implements OnInit {
constructor() {
console.log('Called Constructor');
}
ngOnInit() {
console.log('Called ngOnInit method');
}
}
输出:
Called Constructor
Called ngOnitit method
注意:班的应用程序销售
constructor () {
// First called before ngOnInit ()
}
Oninit () {
// Named after the constructor and named after NgOnChanges()
}
使用此交互在管理属性启动后应用自定义的启动思维。NGOnInit是在目标站点第一次被索引后,在其任何子站点被测试前被命名的。只包含一次引导。
** ngOnInit和构造函数的区别:**
- 我们大多在每次启动/宣布时使用ngOnInit,避免事情在构建器中工作。构造函数应该只用于启动类成员,但不应该做实际的 “工作”。
- 所以你应该使用构造函数()来设置依赖注入,而不是很多。ngOnInit()是一个更好的 “起点”–这是解决组件组合的地方/时候。
- 我们使用constructor()进行所有的初始化/声明。
- 最好避免在构造函数中写入实际工作。
- 构造函数()应该只用于初始化类成员,而不应该做实际的 “工作”。
- 所以我们应该使用constructor()来设置依赖性注入、类字段的初始化等。
- ngOnInit()是写 “实际工作代码 “的一个更好的地方,我们需要在类被实例化后立即执行。
- 比如从数据库加载数据 – 在你的HTML模板视图中向用户展示。这样的代码应该写在ngOnInit()中。
结论:
- 构造函数初始化类成员。
- ngOnInit()是一个放置代码的地方,当类被实例化时,我们需要在第一时间执行这些代码。