如何拥有引用其他组件的Angular组件?

时间:2019-12-20 21:08:52

标签: angular typescript angular8

我们在Angular应用程序中有不同的模块:客户,产品,销售,库存,市场营销等。

正在发生的事情-其他组件中有时可能需要不同的客户,产品形式,组件等。

因此库存可能需要客户,产品需要营销等

我们的团队正在讨论两种选择,

1)所有模块都互相引用;团队不愿进行操作,因为它可能会成为网络蜘蛛网模型并且难以维护。

2)或将所有内容放入共享模块。但是,这些组件中有很多是共享的,因此最终可能会占60-70%。

好奇是否有第三种选择,不需要将每个文件都重定位到“共享”,并且更易于维护。

2 个答案:

答案 0 :(得分:0)

当应用程序开始增长时,将组件拆分为业务模块是最佳实践。真的很容易维护。

共享模块概念: 如果UI / UI中的业务模型中的元素(对话框,工具提示等)在整个应用程序中是通用的,则可以引入共享模块的概念。您可能希望在整个应用程序中使用类似的用户体验。

要引用不属于当前模块的组件,可以使用动态组件加载器概念来加载组件。请参考角度文件。您可以通用地编写此动态加载器,以便可以跨使用。 https://angular.io/guide/dynamic-component-loader

我们在这里想要实现的是在运行时通过angular本身委派组件引用。

答案 1 :(得分:0)

我建议您使用每个组件的独立模块。假设您需要在多个模块中使用客户表单的组件。 使该组件成为一个独立的模块,而不是在SharedModule中添加所有组件,然后将其导入所需的模块中。这样,您的组件将更加灵活,动态,智能和可重用。

它也使您可以灵活地仅在模块中使用所需的组件。如果您创建一个SharedModule,则只需要该模块中的客户表单。您必须导入整个模块,其中可能包含一堆不需要的其他组件。