Angular 库概览
Angular 库开发概述
许多应用都需要解决一些同样的常见问题,比如提供统一的用户界面、渲染数据,以及允许数据输入。开发人员可以为特定的领域创建一些通用解决方案,以便在不同的应用中重复使用。像这样的解决方案就可以构建成 Angular 库,这些库可以作为 npm 包进行发布和共享。
Angular 库是一个 Angular 项目,它与应用的不同之处在于它本身是不能运行的。必须在某个应用中导入库并使用它。
这些库扩展了 Angular 的基本功能。比如,要向应用添加响应式表单,请使用 ng add @angular/forms
添加该库的 npm 包,再从应用代码中,从 @angular/forms
库中导入 ReactiveFormsModule
。同样,把 Service Worker
库添加到 Angular 应用中是将应用转换为渐进式 Web 应用程序(PWA)的步骤之一。Angular Material 是一个大型通用库的典范,它提供了一些复杂、可复用,兼具高度适应性的 UI 组件。
任何一位应用开发者都可以使用这样或那样的库,它们都已经由 Angular 团队或第三方发布为 npm 包。
创建库
如果已经开发出了适合复用的功能,你就可以创建自己的库。这些库可以在你的工作区中本地使用,也可以把它们发布成 npm 包,共享给其它项目或其它 Angular 开发者。这些包可以发布到 npm 服务器、一个私有的 npm 企业版服务器,或一个支持 npm 包的私有包管理系统。
是否把一些功能打包成库是一种架构决策,类似于决定一个功能应该做成组件还是服务,或决定一个组件的范围该有多大。
把功能打包成库会强迫库中的工件与应用的业务逻辑分离。这有助于避免各种不良实践或架构失误,这些失误会导致将来很难解耦和复用代码。
把代码放到一个单独的库中比简单地把所有内容都放在一个应用中要复杂得多。它需要更多的时间投入,并且需要管理、维护和更新这个库。不过,当把该库用在多个应用中时,这种复杂性就会得到回报。
注意:
这里所说的库是为了供 Angular 应用使用的。 如果想把 Angular 的功能添加到非 Angular 应用中,可以使用 Angular 自定义元素。