我正在开发一个已经通过使用默认的角度变化检测开发的应用程序,我们正面临速度慢的问题。我尝试使用onPush更改检测功能,虽然可以带来很多启动性能,但是需要进行很多更改。
因此,我尝试使用ChangeDetectorRef的detach()来将我的组件从单击按钮的更改检测中分离出来,并在完成处理后重新附加它,以便可以执行角度更改检测。但是,它并没有提高任何性能。
是否还有其他方法可以通过单击按钮来复制onPush更改检测中发生的事件,并且当事件处理程序完成执行时,然后将更改检测策略更改回默认值吗?
谢谢。
答案 0 :(得分:0)
不确定,但值得一看的是ngZone.runOutsideAngular()。这是逃脱Angular变更检测的一种方式,而无需拆卸变更检测器。 例如:
constructor(private zone: NgZone) {}
this.zone.runOutsideAngular(() => {
this.document.addEventListener(
'click',
this.onDocumentClick.bind(this)
);
});
希望对您有帮助!