更改路线时是否应该从内存中释放组件?

时间:2019-11-03 18:59:52

标签: typescript memory-management garbage-collection angular7

我已经构建了一个有角度的应用程序,并且似乎发生了很大的内存泄漏,因为组件对象没有从内存中释放出来。

在应用程序中,有一个home组件,该组件是登录后导航到的组件。用户可以从home组件导航到一个视图表单组件,从而创建大量内存。

我遇到的主要问题是,每次我从视图表单组件导航回首页组件时,视图表单组件都不会从内存中释放。 home组件似乎也没有释放,如果我在home组件和查看表单组件之间来回导航4次,那么我会在堆快照中看到每个组件4个(由chrome dev工具拍摄)。

视图表单组件中嵌套了许多其他组件,并且还利用了非常大的嵌套深度很大的有角FormGroup。

我正在应用程序pollyfills.js中使用全局填充程序作为窗口。

我的组件利用了许多Observables和BehaviorSubjects(rxjs 6.3.3),我正在使用将所有订阅推送到数组上并取消订阅onDestroy的方法。

我创建了一个草稿的角度项目,并模仿了在实际应用程序中完成的路由,并且发现按预期方式从堆快照中删除了这些组件。

0 个答案:

没有答案