Angular 2性能:与数据成员绑定是否比函数绑定更好?

Typ*_*ter 5 data-binding performance angular

我想对绑定到数据成员的性能是否比绑定到函数的性能更好一些?

例如,以下哪个陈述将有更好的表现?

1)

<myComp *ngIf="isThisTrue"></mycomp>
Run Code Online (Sandbox Code Playgroud)

isThisTrue在哪里通过方法设置

checkIfTrue(data){
       this.isThisTrue = data;
}
Run Code Online (Sandbox Code Playgroud)

在从可观察对象接收到事件时调用此checkfTrue()的位置。

要么

2)

<mycomp *ngIf="seeIfItHasBecomeTrue()"></mycomp>
Run Code Online (Sandbox Code Playgroud)

seeIfItHasBecomeTrue在哪里检查以查看this.isTrue是否为true。

我显然认为绑定到数据成员应该更快,但是我不确定是否总是会更快?还是有一些灰色区域?另外,如果速度更快,那么多少呢?

Max*_*kyi 9

如果使用该方法,*ngIf="isThisTrue"则编译器将生成以下updateRenderer函数:

function (_ck, _v) {
    var _co = _v.component;
    var currVal_1 = _co.isThisTrue;   <--- simple member access
    _ck(_v, 5, 0, currVal_1);
}
Run Code Online (Sandbox Code Playgroud)

如果使用第二种方法*ngIf="seeIfItHasBecomeTrue()",该函数将如下所示:

function(_ck,_v) {
    var _co = _v.component;
    var currVal_1 = _co.seeIfItHasBecomeTrue();   <--- function call
    _ck(_v,5,0,currVal_1);
}
Run Code Online (Sandbox Code Playgroud)

与简单成员访问相比,函数调用的性能更为沉重。

要了解有关updateRenderer函数的更多信息,请阅读:

  • 该链接似乎已损坏。 (3认同)