【问题标题】:How to apply onPush change detection in angular just for a particular event如何仅针对特定事件以角度应用 onPush 更改检测
【发布时间】:2020-02-07 02:50:57
【问题描述】:

我正在开发一个已经使用默认角度变化检测开发的应用程序,我们正面临速度缓慢的问题。我尝试使用 onPush 更改检测,它带来了很多启动性能,但它需要很多更改。

所以,我尝试使用 ChangeDetectorRef 的 detach() 将我的组件与单击按钮的更改检测分离,并在处理完成后重新附加它,以便可以执行角度变化检测。但是,它并没有带来任何性能提升。

是否有任何其他方法可以复制 onPush 更改检测中发生的情况,点击按钮,当事件处理程序完成执行时,我们将更改检测策略更改回默认值?

提前致谢。

【问题讨论】:

    标签: angular angular-changedetection


    【解决方案1】:

    不确定,但可能值得关注 ngZone.runOutsideAngular ()。这是一种逃避 Angular 变更检测的方法,无需分离变更检测器。 例如:

     constructor(private zone: NgZone) {}
    
        this.zone.runOutsideAngular(() => {
            this.document.addEventListener(
                'click',
                this.onDocumentClick.bind(this)
            );
        });
    

    希望对你有帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-10-04
      • 2017-06-15
      • 2019-09-18
      • 2021-03-06
      • 1970-01-01
      • 2013-03-28
      • 2021-11-10
      相关资源
      最近更新 更多