Angular 这是一个好习惯吗
Angular is it a good practice
我正在制作一个中型应用程序,我想知道我在数据绑定方面的做法。
我以这种方式将数据直接从服务传递到模板:
<ion-list class="list-preview ion-padding padding-top-0" lines="none" *ngIf="caseService.activeCase.value.values">
<ion-item *ngFor="let caseItem of caseService.activeCase.value.getValues()">
<div>
<ion-note class="ion-float-left">{{ caseItem.label }}</ion-note>
<ion-text class="ion-float-left">{{ caseItem.value }}</ion-text>
</div>
</ion-item>
</ion-list>
一些 tutorials/apps 有不同的方法来制作它。通常是在组件中订阅服务,然后将结果赋值给组件变量,这样:
cases = [];
constructor(
public caseService: CasesService) {
}
ngOnInit(): void {
this.caseService.getStructure().subscribe(cases => this.cases = cases);
}
你怎么看?一些道具,缺点?
推荐代表订阅和 return 局部变量的值的原因是,如果您将函数调用添加到 HTML 模板 angular 必须检查return 函数的值,通过这种方式多次调用函数本身。
由于 Angular 检查函数的 return 值,因此触发了整个变更检测生命周期。如果不在模板中使用函数调用而仅使用变量 Angular 不必调用任何函数,则仅触发 属性 检查。这样可以使应用程序更快,内存效率更高。
我正在制作一个中型应用程序,我想知道我在数据绑定方面的做法。 我以这种方式将数据直接从服务传递到模板:
<ion-list class="list-preview ion-padding padding-top-0" lines="none" *ngIf="caseService.activeCase.value.values">
<ion-item *ngFor="let caseItem of caseService.activeCase.value.getValues()">
<div>
<ion-note class="ion-float-left">{{ caseItem.label }}</ion-note>
<ion-text class="ion-float-left">{{ caseItem.value }}</ion-text>
</div>
</ion-item>
</ion-list>
一些 tutorials/apps 有不同的方法来制作它。通常是在组件中订阅服务,然后将结果赋值给组件变量,这样:
cases = [];
constructor(
public caseService: CasesService) {
}
ngOnInit(): void {
this.caseService.getStructure().subscribe(cases => this.cases = cases);
}
你怎么看?一些道具,缺点?
推荐代表订阅和 return 局部变量的值的原因是,如果您将函数调用添加到 HTML 模板 angular 必须检查return 函数的值,通过这种方式多次调用函数本身。 由于 Angular 检查函数的 return 值,因此触发了整个变更检测生命周期。如果不在模板中使用函数调用而仅使用变量 Angular 不必调用任何函数,则仅触发 属性 检查。这样可以使应用程序更快,内存效率更高。