是否有推荐的方法在 Angular 应用程序中为可在应用程序的不同部分使用的可重用组件、管道和指令创建共享库或文件夹?
虽然我知道独立组件可以直接导入到其他组件中,但我想知道是否有一种首选方法/结构/架构,可能涉及创建一个库,以便以更结构化的方式组织和共享这些资源。
我有一个独立的 nx Angular 应用程序项目。
我知道如何创建一个库,我知道如何创建一个组件,但是当我创建一个库时,它也会在其中创建该组件,所以我必须删除它。它有效,但感觉不是正确的方法,我可能是错的
实际上有几种方法可以实现您想要实现的目标,每种方法都有优点和缺点。
使用自定义库:
如果您构建自定义库,则可以将其导入您需要的每个独立组件中。捆绑包大小将大于第二种方法。此外,保持库和前端更新并不总是那么容易,尤其是在不定期更新的情况下。
在同一应用程序中使用共享文件夹
如果您不需要在其他项目中引入此组件、管道等,则此方法可能很有用。您还需要在所有独立组件中导入所需的组件、管道等。您还可以创建一个
sharedModule
来导入和导出所有共享内容,然后将模块导入到所需的组件中(如果模块有大量项目,可能会导致有点矫枉过正)。
我有一个独立的 nx Angular 应用程序项目。
使用完整独立项目的缺点是,如果您有十个使用相同
foo.pipe
的组件,则需要将其导入每个组件中。
这可能会令人沮丧,但它使开发人员可以完全控制正在发生的事情,而无需为每个场景定义大量模块。
关于如何构建 Angular 项目的思想流派很少,但也没有标准。
所以,回顾一下:
关于这个主题的答案都是基于意见的,这在 SO 上是被禁止的。使用方法取决于您。我使用了两者(自定义库和共享文件夹),这仅取决于项目。就性能而言,没有区别。