捍卫 Angular 框架
过去一个半月,我一直在用 Angular 开发一个单页应用。当我听说必须使用 Angular 时,我感到很局促,心想:“为什么?市面上有那么多更好的选择。” 我和很多人一样,听说过 Angular 在第 2 版中被彻底重写,这毁掉了它的声誉。我听说这个框架臃肿、复杂,总体来说对大多数项目来说过于庞大。
我在这里分享我作为主要 React 开发人员的经验,从在生产中运送 React 代码到使用 Angular 进行生产应用程序。
历史
这不是我第一次接触这个框架。为了准备毕业设计,我用 React、Vue 和 Angular 做了一个相同的应用,试图比较这三个框架,看看哪个更好(三个框架都有各自的优点和不足,没有所谓的“最佳选择”)。在现在这家公司工作的时候,我对 Angular 并不完全陌生,但我更倾向于使用 React,因为我用起来更顺手。
在开始新项目之前,我有三天的周末时间,因此我以更加开放的心态再次学习了 Angular 教程,浏览了 TypeScript 快速入门,并偶尔查看了 RxJS 文档,然后在下周开始从事该项目。
成长的烦恼
Angular 每个组件都有大量的文件。至少有 3 个,一个是.html
模板文件,然后是.ts
逻辑文件,以及一个.css
(更可能是).sass
样式文件。这对我来说简直是地狱,直到我习惯了。从 React 开始,一切都转移到一个包含 JSX 和 CSS 的单文件组件,这在很大程度上令人沮丧。
但与此同时,我理解“关注点分离”是一个很好的架构选择,所以我没什么可抱怨的。然而,当你有很多组件需要处理,并且在它们之间传递数据可能会变得有点混乱时,问题就会显现出来。不过,这并不难,人们很快就会习惯并理解它的重要性。
TypeScript
Angular 中的 TS 与任何其他框架中的 TS 都不一样。它被广泛使用,而且在某种程度上我仍然不太理解。但与此同时,这也是一次很棒的学习经历,因为我现在可以在任何其他项目中毫无问题地编写 TS,这无论如何都是我 2020 年的学习目标之一。而且你可以随心所欲地使用它,它更像是另一个“测试”和“linting”层,帮助开发人员编写更安全、更干净的代码。加上 TSLint,所有开发人员的代码库看起来都一样。
RxJS
我曾在某处读到过,这是使用 Angular 时最令人困惑和最难的部分。我可能对可观察对象的研究还不够深入,以至于没有遇到任何让我感到困惑的具体细节,因为使用 RxJS、操作符和订阅一点也不难,也毫不费力。
你只需像 http GET 请求一样订阅一个可观察对象,一旦服务器返回数据,你就可以像在then
Promise 上使用 一样解析它。它还提供了大量的 功能,operators
帮助你轻松地操作和编辑可观察对象。
我特别推荐 RxJS。目前为止没什么可抱怨的,但我实在不明白为什么除了 Angular 之外还要用 Observable。
完整套件
Angular 不仅仅是一个视图层,开发人员可以在其中使用他们想要的任何包和模块,相反,它有点固执己见,并带有各种不同的功能,包括路由、表单、http 请求、前面提到的 RxJS 和 TypeScript。
这并非坏事,而是一种选择。您是否希望使用 React,因为您可以灵活地选择使用哪种方式,按照自己想要的方式开发应用,但同时又冒着搬起石头砸自己的脚的风险,因为您没有考虑到某些因素?Angular 则相反。您拥有一套完整的工具包,可以构建一个完整的应用,而无需实现或考虑外部解决方案,但您放弃了使用 React 可能拥有的一些自由,我认为这是可以理解的。
这就是为什么 Angular 在企业解决方案中仍然比 React 更受欢迎,但在人们追求灵活性的小型社区中却不那么受欢迎。
总结
不要仅仅因为某些技术不太流行,或者你认为它们存在一些弊端就限制自己。相反,你应该尝试它们,并通过开发一些小应用来形成自己对生态系统和开发者体验的看法。语言和技术领域的其他事物也是如此。
感谢您的阅读。
文章来源:https://dev.to/zasuh_/in-defense-of-the-angular-framework-25fg