【问题标题】:Angular is it a good practice [closed]Angular 是一个好习惯吗[关闭]
【发布时间】:2020-08-25 20:17:27
【问题描述】:

我正在制作一个中等大小的应用程序,我想知道我的数据绑定实践。 我以这种方式将数据直接从服务传递到模板:

      <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>

一些教程/应用程序有不同的制作方法。通常通过订阅组件中的服务,然后将结果分配给组件变量,这样的方式:

cases = [];
  constructor(
              public caseService: CasesService) {
  }

  ngOnInit(): void {
    this.caseService.getStructure().subscribe(cases => this.cases = cases);
  }

你怎么看?一些道具,缺点?

【问题讨论】:

  • 作为一个经验法则,在ngFor 语句中调用函数绝不是一个好主意。它会被调用的次数超出你的实际想法。

标签: angular ionic-framework binding angular2-services


【解决方案1】:

之所以推荐代表订阅并将值返回给局部变量是因为如果您将函数调用添加到 HTML 模板中,angular 必须以这种方式检查函数的返回值,从而对函数本身进行多次调用. 由于 Angular 检查函数的返回值,因此触发了整个更改检测生命周期。如果不在模板中使用函数调用而只使用变量 Angular 不必调用任何函数,则只会触发属性检查。这样可以使应用程序更快,内存效率更高。

【讨论】:

    猜你喜欢
    • 2015-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-30
    • 2016-01-03
    • 1970-01-01
    • 2023-01-06
    相关资源
    最近更新 更多