我正在努力优化angular应用程序中代码的性能。
我知道我可以runOutsideAngular
一些代码,以免在每次代码运行或事件中引起更改检测。
但是,当我使用OnPush
变化检测策略时,我是否需要使用runOutsideAngular
?(用于听众等(
我想我现在有了答案。
在我看来,这取决于应用程序的外观。
-
如果它有许多未优化的组件,并且异步操作将多次触发,或者它是一个事件侦听器,那么它必须在
runOutsideAngular
内 -
然而,如果一个应用程序主要是用具有
OnPush
策略的组件构建的,或者只是AppComponent
使用OnPush
(因为整个树将使用OnPush
策略,在顶级组件上定义它,并为整个应用程序不可逆转地定义此策略(,那么您可以省略使用runOutsideAngular
,因为更改检测的触发器不会影响任何
此外,我认为完全OnPush
优化的应用程序可以选择禁用Zone中的所有事件补丁,因此不需要runOutsideAngular
,因为所有异步事件都没有触发NgZone的点。