2

我一直在研究大量的ngModules,每個ngModules封裝了自己的一套組件,服務,指令等等。它們很大。現在我已經準備好將我的應用程序串起來,並且將每個模塊都路由到主路由器插座上,但我擔心整體內存消耗,特別是對於低端設備(平板電腦僅限於移動設備)。所以我的問題是,當路由器懶加載一個新的模塊,是以前的惰性加載模塊卸載?我只能找到關於JIT,AOT,預加載和延遲加載的信息,但是在加載後的上下文中缺少有關Angular 2+和內存管理的資源或討論。Angular 2+路由器是否卸載了以前的惰性加載模塊

預先感謝您考慮我的問題。

回答

0

我可以確認,雖然它們最初沒有使用延遲加載方法加載,但是在路由到另一個模塊後它們不會被卸載。更糟糕的是卸載模塊不會被ngx支持。這裏是關於布拉德格林問這個確切問題的推文。

https://twitter.com/bunsofaluminum/status/642397294474756096

我想添加關於卸載組件的快速評論。你可以卸載組件和與它們相關的數據有兩種方式我知道 DynamicComponentLoader這是核心的一部分和OnDestroy它實現就像OnInit一樣。你應該能夠利用這兩個來幫助整體的內存負載,特別是如果你使用大量的服務,你可以退訂OnDestroy。

0

看起來像「尚未實施」是still the correct answer as of 2017-04

然而,開發商桑德埃利亞斯提出了一個解決辦法:

刷新內存的唯一方法是一個頁面重載。最簡單的方法是使用href而不是routerlink在應用程序的某些部分之間導航。

相關問題