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