2
我有一个接受字符串作为输入参数的组件。 该字符串应该是局部的,所以我结合该字符串是这样:绑定最佳实践
<drawer-item [text]="getSectionName (Routes.Companies)" >...
这样一切完美,但我把一个破发点到getSectionName功能,我注意到,这个函数被调用很多的时代。 在启动时被称为5-6次,然后每当我在应用程序中执行某些操作时,都会再次调用它。
这是正确的行为还是对演出有危险?
非常感谢
编辑 管道:
@Pipe({
name: 'route',
pure: false
})
export class RoutePipe implements PipeTransform {
static i:number = 0;
transform(route: Route) {
switch (route.state) {
case Routes.StartPage.state:
console.log (RoutePipe.i++);
return "H";
case Routes.Companies.state:
return "G";
case Routes.Settings.state:
return "F";
case Routes.Users.state:
return "E";
case Routes.CoursesSources.state:
return "D";
case Routes.DocumentSources.state:
return "C";
case Routes.Notifications.state:
return "B";
case Routes.NonDocumentalExpirations.state:
return "A";
default:
break;
}
}
}
编辑 有关管道的很好的解释可以发现here。
但即使有'表达式'或'变量引用',该表达式将在CD运行时进行评估。所以性能如何重要?道歉,如果我错过了什么.. –
比较两个值的标识是便宜的,调用函数比较昂贵(没有比较例如HTTP请求),但它可以总结,如果你有很多的绑定。 –
使用管道仍然被称为很多次。在这一点上,我认为这是Angular2的正常行为 – user3471528