maple00 2020-09-02
本文转载自公众号“读芯术”(ID:AI_Discovery)。
每一个开发人员或软件工程师在开始他们的职业生涯时,都必须面对一个问题:首先要学习哪种语言、框架或工具?
要回答这个问题有点困难,在软件开发行业中有大量可用的语言和框架。JavaScript已经成为大多数开发流程的支柱,所以我想对三种基于JavaScript的框架进行比较,我选择的是Angular、React和Vue三种框架。
StackOverflow调查
图源:Stack Overflow
Stack Overflow就最受欢迎的框架进行调查,调查结果显示,React和Angular分别排在第二和第三位。去年,Angular击败React占据领先地位。但如果考虑到专业开发人员的反馈,Angular仍然排在第二位,而React排在第三位。此外,尽管Vue发展迅速,但该框架在评级中仅排名第七。
NPM 趋势
图源:NPM Trends
这张NPM Trends图表向我们展示了一段时间内每个框架的下载数量。上图显示了过去一年的数据,我们可以看到React在这方面遥遥领先于它的竞争对手。Vue的下载量也在与日俱增,目前保持在150万左右。
NPM Trends的另一个特点是,它同样显示来自GitHub的数据。在下图中,你可以看到每个框架的复制克隆项目(forks)、收藏(stars)和事务卡片(issues)的数量。
图源:NPM Trends
JavaScript状态报告
2019年JavaScript状态报告包括JavaScript的另一个报告生成平台,你可以在那里找到各种比较报告(https://2019.stateofjs.com/front-end-frameworks/)。下面这张图就是我从那里找到的,显示了用户的反应,例如他们是否会再次使用该框架与是否知道这项技术等等。
图源:https://2019.stateofjs.com/front-end-frameworks/
正如我们所看到的,比起Angular,大多数用户可能还是会使用React和Vue。
选择Angular的理由
图源:https://2019.stateofjs.com/front-end-frameworks/angular/
对我来说,Angular开启了我的软件开发之旅,我并不后悔我的决定。与其他两个框架相比,Angular更成熟,并且有一个围绕Angular构建的大型社区。除了是著名的MEAN堆栈的一部分,Angular还有其他做得很好的地方,比如双向数据绑定、依赖注入、MVC框架、Angular CLI、TypeScript支持、指令等等。
但随着React和Vue等竞争对手的崛起,Angular在过去几年失去了人气。作为一个重量级的框架,Angular的更新无法满足用户的期望,SEO支持有限和学习难度高等因素都极大地影响了Angular的普及。这就是为什么如今人们更倾向于选择Vue和React。
但是Angular仍然用于支持许多流行的网站和web应用程序,比如Guardian、Upwork、PayPal和Sony,它们都是重要的网站,Angular在这方面很好地证明了自己。Angular主要在以下情况下使用:
选择React的理由
图源: https://2019.stateofjs.com/front-end-frameworks/react/
根据JavaScript状态报告,React已经连续第三年在所有评级中位居第一。React是Facebook于2013年发布的,其目的是将用户界面划分为一组组件,简化开发过程。可以进行本地开发是React的主要优势之一,而大型社区、Facebook的支持、饱和的生态系统、更优质的性能、可重复使用的组件和SEO友好性也是其优势。
但是突然的更新可能会在开发人员中引起讨论,因为他们不得不更新他们的工作,防止出现兼容问题。使用JSX和缺少文档是React的其他一些主要缺点。React更适用于以下情况:
我们为什么要选择Vue?
Vue是近些年来的新星,它很快从一个普通的框架变成了最受专业人士喜爱的框架。
图源:https://2019.stateofjs.com/front-end-frameworks/vuejs/
由于轻量级的框架、详细的文档、响应速度快、可重复使用、TypeScript支持和简单的学习曲线等特性,Vue发展迅猛。
Vue有许多特别的方面,有些甚至看起来是缺点。例如,Vue非常灵活,然而有时对于拥有大量开发人员的团队来说,它可能过于灵活了。
如今,这种框架在亚洲市场需求量很大。但是使用Vue也有一些缺点,比如对大型项目缺乏支持,社区规模小。但在一些特定的情况下,Vue可能是你的最佳解决方案:
图源:unsplash
综上,React将是2021年最适合学习的框架,Vue紧随其后。但Angular很有可能夺回第二名,因为它很久以来位居第二。所以如果你是一名Angular开发者,我建议你在接下来的日子里学习React。