<div *ngFor="let student of mystudentsFiltered | orderBy : ['-presence', 'unreadcount']>
在上面for
模板,我使用了一个管orderBy
,这对列表进行排序,每次有一个列表中项目(学生)的状态更改。不知何故,每次出现鼠标或键盘事件时都会重复调用此管道。异步管道用来排序列表,每天有一个鼠标或键盘事件时调用 - Angular4
我研究更发现,管在Angular4被执行每次有一个变化检测。而Angular4考虑在变化检测机制以下为:
1)活动 - 点击提交,滚动,
2)XHR - 从远程服务器
3)计时器获取数据 - 的setTimeout( ),setInterval()
如何限制在有数据更改但不包含默认更改检测事件时调用所述管道?
您已将'ChangeDetectionStrategy'更改为'onPush',就像这个'changeDetection:ChangeDetectionStrategy.OnPush'一样,尽管不推荐这样做,因为它导致性能较差 –
@RahulSingh这是我第一次看到有人说“onPush”导致糟糕的表现。正确使用'onPush'可以极大地提升**应用程序的性能,您只需要对Angular的变化检测机制有一个很好的理解。 –
性能是使用管道进行过滤。管道并不意味着用作过滤器 –