我们在Angular应用程序中有不同的模块:客户,产品,销售,库存,市场营销等。
正在发生的事情-其他组件中有时可能需要不同的客户,产品形式,组件等。
因此库存可能需要客户,产品需要营销等
我们的团队正在讨论两种选择,
1)所有模块都互相引用;团队不愿进行操作,因为它可能会成为网络蜘蛛网模型并且难以维护。
2)或将所有内容放入共享模块。但是,这些组件中有很多是共享的,因此最终可能会占60-70%。
好奇是否有第三种选择,不需要将每个文件都重定位到“共享”,并且更易于维护。
答案 0 :(得分:0)
当应用程序开始增长时,将组件拆分为业务模块是最佳实践。真的很容易维护。
共享模块概念: 如果UI / UI中的业务模型中的元素(对话框,工具提示等)在整个应用程序中是通用的,则可以引入共享模块的概念。您可能希望在整个应用程序中使用类似的用户体验。
要引用不属于当前模块的组件,可以使用动态组件加载器概念来加载组件。请参考角度文件。您可以通用地编写此动态加载器,以便可以跨使用。 https://angular.io/guide/dynamic-component-loader
我们在这里想要实现的是在运行时通过angular本身委派组件引用。
答案 1 :(得分:0)
我建议您使用每个组件的独立模块。假设您需要在多个模块中使用客户表单的组件。 使该组件成为一个独立的模块,而不是在SharedModule中添加所有组件,然后将其导入所需的模块中。这样,您的组件将更加灵活,动态,智能和可重用。
它也使您可以灵活地仅在模块中使用所需的组件。如果您创建一个SharedModule,则只需要该模块中的客户表单。您必须导入整个模块,其中可能包含一堆不需要的其他组件。