【发布时间】:2020-03-27 11:35:42
【问题描述】:
我开始制作自己的 Angular 组件库。主要原因是我想在未来的项目中重用组件以提高生产力并节省时间。
现在我可以在任何新项目中安装我的库并重复使用我的组件。
例如:
<div>
<ng-mylib-simple-spinner></ng-mylib-simple-spinner>
</div>
问题是如何处理更复杂的组件?
如果我需要从用户那里获取数据并将其传递给服务或其他组件,我该怎么办?例如登录表单组件,或者如果我想重用导航栏并更改我的RouterLink 链接等。
如何在新项目中更改库组件的模板和逻辑? 我的方法应该是什么?
【问题讨论】:
-
复杂的组件可能不适合成为库的一部分
-
你的问题太宽泛了。如果您需要一些模板调整(例如菜单的不同布局),您可以使用
ContentChild以便您拥有默认模板以及覆盖它的选项 -
@bryan60 采用角度材料。它相当复杂,非常适合作为库。
-
@Sergey Angular Material 不提供登录表单或从用户那里收集信息的任何东西,除了表单助手和一些低级表单组件。也许“复杂”不是正确的词,但“具体”的东西不是图书馆的理想选择
-
@bryan60 看看 CDK。它有很多参数。如果它可以跨项目重用,那么它必须被重用。例如,我有一个复杂的自建库,用于处理跨项目共享的选项卡。它开始消耗大量数据,但它很容易重用,并且有机会覆盖预定义的模板以实现其他一些选项卡布局。这一切都取决于情况
标签: angular code-reuse angular-library