我需要编写一个模块,该模块可以在我们的不同应用程序中重复使用,并且需要使用路由,表单,选项卡...使用Angular元素制作Web组件有意义吗?还是一个更好的主意为此创建一个库?
当前所有需要此模块的应用程序都是使用Angular制作的,我们公司希望继续将Angular用于我们的Web应用程序,但是谁知道将来是否会使用React或其他JS库或框架。 ..
编辑:该模块仅供内部使用,不适用于客户端。它将包括针对我们所有应用程序共有的不同资源(类型,语言,状态...)进行CRUD操作的功能。其中的每一个都将在一个标签中表示,因此,例如,在“语言”标签中,您会看到一个带有分页的表格,其中显示了所有语言条目,并且您可以创建新的语言来填充表格,编辑语言并删除它们。>
答案 0 :(得分:3)
我想这个问题有多个答案,您最终必须决定要做什么。根据我的经验,我建议制作一个普通的Angular库,而不是一个Web组件。原因如下:
1)工作量减少了,并且随着贵公司开始使用Angular并且没有更改计划,我肯定会让事情变得简单/避免额外的工作。
2)使用独立的Web组件时,部署很可能会变得更加复杂。
3)您错误地实现了某些特定于Angular的东西而没有额外的工作就无法在其他框架中使用的机会很高,并且无论如何实际上不可能将您的库重用于其他框架。
4)您说这是一个复杂的模块。在库中,您可以轻松地将其拆分为几个组件/服务。尽管您也可以在独立的Web组件中执行此操作,但这始终是额外的工作。
5)最后:如果您的公司决定使用除Angular之外的其他框架,这将是您迈出的重要一步,因为您或多或少都会重写所有内容!如果您采取了这样的步骤,那么重新思考方法,用户体验以及所有这些总是明智的。这很可能导致您做出决定,即您的Web组件要么必须进行大量重构,要么就不再使用Angular或已弃用。
对我来说,如果创建一个独立的Web组件,您似乎将无法从其他工作中受益。但是:如果您发现创建一个独立的Web组件真正的好处,那就是有人(您的老板或客户)愿意为此付费,那么您应该选择该选项。