在什么情况下,如果我已经在使用 OnPush 更改检测,我应该使用 runOutsideAngular



我已经在不可变数据中使用了 OnPush 更改检测。 我想知道是否可以通过使用ngZone.runOutsideAngular对更改检测进行进一步的优化? 我只是在这里寻找一些指导方针。

它们不是特别相关。OnPush控制每个组件级别的更改检测,而ngZone"排序"触发器整个应用程序的更改检测。

Angular 使用区域,特别是NgZone在没有更多任务时获得通知。在区域中计划的任务将在此区域中执行。因此,所有像setTimeout这样的异步任务都在NgZone内执行。该ngZone.runOutsideAngular允许您在ngZone之外安排任务,这意味着一旦完成,Angular 将不会收到通知,也不会发生更改检测。

如果您有一些每秒执行多次的重复异步任务(如鼠标移动事件(,那么您可能会利用ngZone.runOutsideAngular来避免触发每个事件的更改检测。然后,您可以计划每秒一次手动更改检测。除此之外,我想不出它如何帮助您优化应用程序。

相关内容

  • 没有找到相关文章

最新更新