我的应用只要有一些数据要处理(一组60多个对象),性能就会急剧下降。这真是太疯狂了,因为真的没有什么事情发生。
我有一个对象数组,然后需要对其进行过滤,并以类似日历的布局显示。现在,该日历的每一个 "天 "都是一个组件,它扩展了一个基本的 "天 "组件,而这个组件又订阅了一个持有上述对象数组的全局主题。这意味着在一个月的视图中,5周的时间里,我在一个页面上有35个订阅(这还没有算上UI的其他部分的订阅)。我怀疑订阅的数量使得它对用户操作的响应速度如此之慢。
如果我有一个 "真相来源",需要在一个页面上根据几个过滤器(如,模式,布局,日期)过滤35次,哪种替代方法可以提高性能?
我知道 @Input
理论上可以做到这一点,但当我试过后,它似乎更糟糕的一个选项。有什么办法吗?
试着改变 Change Detection Strategy
到 OnPush
的值时,angular才会检查是否有变化。@Input
变量变化,减少处理。
@Component({
template: `...`,
changeDetection: ChangeDetectionStrategy.OnPush
})
你可以得到更多关于该配置的信息 此处.