Angular 5:如果应用程序具有延迟加载功能,页眉,页脚和侧边栏组件应放在核心模块或共享文件夹中?

问题描述 投票:1回答:2

我有一个Angular5应用程序具有以下结构:enter image description here

页眉,页脚和侧栏组件位于共享 - >组件下。 Header和SideBar组件导入服务SideBarService(在Shared文件夹下)。当用户单击Header组件中的侧栏图标时,SidebarService用于切换应用于Sidebar组件的类。

我的问题是:根据Angular 5应用程序架构,Header,Footer和Sidebar应该放在共享还是核心模块中。由于我的应用程序具有延迟加载的模块,将来是否会引起问题,例如,如果一个惰性模块,例如Admin使用侧边栏服务在侧边栏中进行更改,这个更改是否会对其他延迟加载的模块可见?

angular typescript angular5
2个回答
0
投票

我认为你最好将它们放在核心模块中,因为我们只会加载它一次。所有其他模块将在路由器插座中加载。您可以在其中放置任何共享组件,如ConfirmBox,AlertBox,如小部件。无论如何,我们正在从服务访问这些组件。

无论如何,核心模块不应该依赖于其他模块,其他模块可以依赖于核心模块。


0
投票

SharedModuleCoreModule应该是非延迟加载的模块,因为它们可以被任何组件使用。

来到headerfooter组件,如果这些组件的内容将由某些@Input属性(headerfooter不应该是这种情况)改变,或者那些组件标签在你的应用程序的多个地方使用,那么他们可能会来在SharedModule下。如果它们都是静态的,那么那些组件肯定属于CoreModule。因为您只在一个地方使用这些组件标签。

由于我的应用程序具有延迟加载的模块,将来是否会引起问题,例如,如果一个惰性模块,例如Admin使用侧边栏服务在侧边栏中进行更改,这个更改是否会对其他延迟加载的模块可见?

- 不,它不可见,因为延迟加载的模块创建自己的服务实例。

© www.soinside.com 2019 - 2024. All rights reserved.