当用户导航到其他页面时,我需要销毁Angular2应用程序(注意:这是一个我们仅将angular2用于一个页面的应用程序) . 因此,当用户离开此页面时,我们必须取消引导ng2应用程序 .

我正在使用applicationRef如下:

platformBrowserDynamic([
    {provide: 'ConfigService', useValue: {} }
]).bootstrapModule(AppModule).then((appModule:NgModuleRef<AppModule>)=>{
    const appRef = appModule.injector.get(ApplicationRef);

    if(!!callback)
        callback(appRef);
});

当这个页面破坏时,我正在打电话

_ref.components[0].hostView.destroy();

其中 _ref 是上面回调中传递的应用程序引用 .

整个流程调用应用程序内部每个组件的 ngOnDestroy 但是,当我导航到非角度页面时,我可以看到组件仍然存在于内存中并且当我再次打开同一页面时导致性能问题 .

Chrome Profile tab of chrome

您可以从屏幕截图中看到组件仍然存在并消耗内存,即使我已经破坏了上面提到的应用程序 .

这是什么问题 . 是否破坏应用程序还不足以清除内存?