Angular库-处理复杂组件

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

我开始制作自己的角组件库。主要原因是我想在以后的项目中重用组件,以提高生产力并节省时间。

现在我可以在任何新项目中安装我的库,并像这样重复使用我的组件。

例如:

<div>
  <ng-mylib-simple-spinner></ng-mylib-simple-spinner>
</div>

问题是我如何处理更复杂的组件?

如果需要从用户那里获取数据并将其传递给服务或其他组件,该怎么办?例如登录表单组件,或者如果我想重用导航栏并更改我的RouterLink链接等。

我如何在新项目中更改库组件的模板和逻辑?我该怎么办?

angular code-reuse angular-library
1个回答
0
投票

我认为您的问题是编程原则而不是编程逻辑。让我解释一下:

您的可重用组件应该使您更容易开发表示层。这意味着,样式,行为以及与表示相关的所有其他事情,都应由组件来处理,而应尽可能少地从其他组件中了解。这称为去耦,这些组件通常称为“哑组件”。

您希望可重用组件处理API请求和其他与表示无关的事情时,他们了解得太多了。它们是耦合的,不提供功能:重用演示。

如果要重用逻辑,则创建一个与表示分离的服务,并且该服务应处理该特定人的服务逻辑。然后,您将笨拙的组件放入其中以创建视图,并以正确的方式节省了时间。

请记住:您希望您的组件彼此之间尽可能少地了解(因此它们是超级可重用的),并且只做一件事和一件事(表示,身份验证,列表功能,表组件,模态组件),然后将它们像怪异的乐高积木一样放置。

因此,简而言之,您可以通过在“智能组件”中创建它们来处理更复杂的组件,这些组件不过是由“智能组件”胶水组合在一起的笨拙的组件(这是很有意义的逻辑)。

您使组件能够完成所有工作的范例,是您发现有数百万个库可以做一件事的原因,但是您必须下载30Mb并放置一百万个配置选项才能使其运行。自己动手更容易,更简单。并申请您的产品。

希望这会有所帮助! :)

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