angular 中初始化数据的正确位置

Correct place to initialize the data in angular

我需要专家的建议才能知道,我可以在哪里初始化 angular 中的变量?在 constructorngOnInit 中?还是两者都有?

这里是代码: 选项 => 1

constructor() {
this.name = 'Test Stock Company';
this.code = 'TSC';
this.price = 85;
this.previousPrice = 80;
this.positiveChange = this.price >= this.previousPrice;
this.favorite = false;
}

选项 => 2

ngOnInit() {
this.name = 'Test Stock Company';
this.code = 'TSC';
this.price = 85;
this.previousPrice = 80;
this.positiveChange = this.price >= this.previousPrice;
this.favorite = false;
}

或者两者混合会产生怎样的影响?

您应该始终使用 ngOnInit,因为它属于 Angular 组件生命周期。在 ngOnInit 中,您可以访问 @Input 个变量。您可以通过 fixture.detectChanges().

在编写测试期间触发 ngOnInit

另一方面,构造函数与 Angular 无关,它是 TypeScript/JavaScript 语言的一部分。 Ctors 应该像许多其他语言一样只用于注入服务。