如何优化Angular可视组件中的方法调用

时间:2018-10-19 18:36:18

标签: angular angular2-template angular2-directives

       <ng-container *ngFor="let child of root.getChildren()">
       <ng-container *ngIf hasProperty(child)>
         <div>{{getProperty(child)}}</div>
       </ng-container>

       component{
        @input()
         root;
        hasProperty(node){
         console.log("in hasProperty");
          return node.getPropertiesMap.has("property");
         }
         getProperty(node){
         console.log("in getProperty");
          return node.getPropertiesMap.get("property");
         }
        }

数据结构:

根 / | \ a b c

  1. 我用于循环和检查条件,因为我不想创建不必要的DOM元素,这是合理的吗?还是有最佳实践?

2。对于根的每个子代,如果该子代具有属性,则必须打印该子代的属性(这是通过字符串插值完成的)。但是在console.log中,我可以看到hasProperty()和getProperty()方法为每个子对象多次调用两次(由于更改启动)。是否有最佳实践来减少这些不必要的方法调用?还是可以进行这些不必要的通话?

 Console Log:
 in hasProperty true
 in getProperty

 in hasProperty true
 in getProperty

 in hasProperty true
 in getProperty 
/* method calls because of change initiation*/
 in hasProperty true
 in getProperty
 in hasProperty true
 in getProperty
 in hasProperty true
 in getProperty

0 个答案:

没有答案