RouterModule.forRoot(routes,
{ preloadingStrategy: PreloadAllModules })
Angular的官方文档提供了这个预加载策略来预加载所有模块。但是,我不想加载所有的模块。我想在打开父目录后预加载子目录。另外,预加载其他可能的模块,这些模块可以从当前活动的路由调用。我不想在开始时预加载所有模块。我该怎么做?
RouterModule.forRoot(routes,
{ preloadingStrategy: PreloadAllModules })
Angular的官方文档提供了这个预加载策略来预加载所有模块。但是,我不想加载所有的模块。我想在打开父目录后预加载子目录。另外,预加载其他可能的模块,这些模块可以从当前活动的路由调用。我不想在开始时预加载所有模块。我该怎么做?
2条答案
按热度按时间a2mppw5e1#
您可以在所有路由中引入一个数据属性,以决定要预加载哪些模块,不要预加载哪些模块,并根据此数据标志实现PreloadAllModule和更改实现。
参考:-https://coryrylan.com/blog/custom-preloading-and-lazy-loading-strategies-with-angular
您可以通过在Appcomponent中添加一些自定义代码来进行自定义预加载,而不是通过Preload策略。
https://medium.com/dev-genius/advanced-preloading-strategy-for-large-applications-in-angular-cd7ac2b763af
kxeu7u2r2#
我们可以使用自定义的预加载策略。例如:
然后在模块中: