category
当开始一个新的web开发项目时,许多开发人员都有一个问题:“什么工具是最合适的?”
显然,JavaScript是骨干,因为今天它提供了创建前端的广泛功能。但是人们在选择框架时面临着两难,因为JS中有很多框架,而且每个框架都有突出的特性。
通常,争论都是基于三个框架——Angular。js,反应。js和Vue.js。所以现在,我们将考虑它们的优缺点以及它们在开发者中的受欢迎程度。
开发人员的选择
Stackoverflow
首先,我们分析了主题调查,即JavaScript和Stackoverflow的状态。他们每年提供关于各种框架的流行程度和发展状况的最准确的信息。
Most popular web frameworks. Source of the image
尽管Vue.js发展迅速,该框架在评级中仅排名第七(在所有受访者和专业人士中)。React.js和Angular.js分别位居第二和第三。
值得注意的是,从总体结果来看,React.js赶上了第二的位置,而专业开发人员分别把angle .js放在了第二的位置。
Most loved frameworks. Source of the image
然而,开发人员喜欢使用React.js和Vue.js,,同时,Angular.js实际上是在列表的最后。React.js恰好是那些以前从未在这些框架的帮助下开发应用程序的人最希望学习的。紧随其后的是Vue.js和Angular.js。
NPMtrends
技术栈或框架的重要开发指标之一是下载的数量。NPM trends提供了每个工具最精确的统计数据,不仅包括下载数量,还包括Github的数据。
Downloads of Angular.js, React.js, and Vue.js. Source of the image
如您所见,React.js在这方面远远领先于它的竞争对手。与2018年相比,Angular.js的下载量减少了很多。从2019年年中开始,这一数字仍未突破100万大关。Vue.js的势头正在逐渐增强。具体来说,在2019年初,这个数字不超过500 thous。现在这个指标一直都在超过100万。
Frameworks rating on Github. Source of the image
这些指标反映了Stackoverflow的调查结果。Vue。js和反应。js的评分显著高于Angular.js。这就是下载的巨大差异的原因。
JavaScript的状态
这份年度报告是JavaScript和所有相关工具最重要的开发指标。
Frameworks rankings according to State of JavaScript 2019. Source of the image
开发人员主要满足于react.js和vue.js的工作过程。 Angular.js只有38%满足了他们的需求。同样,只有23%的开发人员对Angular有特殊的兴趣。与此同时,Vue.js和React.js的该指标分别为64%和61%。
Opinions on frameworks. Source of the image
关于框架的结果是相似的。大多数受访者要么对Angular.js不感兴趣,要么以前用过,但不想再用它工作了。React.js非常流行,大多数被调查者继续使用这个框架来解决他们的任务。
Stats of frameworks usage by company size. Source of the image
值得注意的是,相对较小的公司更喜欢React.js和Vue。而主要的开发人员(超过100名和1000名员工)更可能使用Angular.js。尽管如此,这些指标大致相等。
优点,缺点,特殊方面
现在让我们分别考虑每个框架:
- 在什么情况下,选择是不明显的?
- 为什么开发者更喜欢React.js?
- 使用每个框架时会遇到什么问题?
为什么React.js ?
React.js已经连续三年蝉联所有收视率第一。一些开发人员对这个框架毫无怨言,因为它发展迅速,而且越来越可持续。
React.js is the most used tool of JavaScript. Source of the image
事实上,值得注意的是,React.js不是一个框架,而是一个库。但是它具有广泛的功能,因此可以经常使用该工具,而不需要进行额外的集成。前端的效果不会因此而降低。
React.js是Facebook在2013年发布的,其目的是将用户界面划分为一组组件,以简化开发过程。
React.js是一个非常饱和的框架。在大多数情况下,开发人员对它只会说些恭维的话。
然而,Facebook最近发布了太多的更新,这使得一些工具过时了。许多开发人员喜欢这个过程。但在大多数情况下,社区抱怨这是因为他们必须不断掌握新技术。
值得注意的是,React.js专家在当今美国是最受欢迎的。2020年5月est. LinkedIn上活跃的query response .js有超过30000个职位空缺,实际上有4000个。
React.js受欢迎的一个关键原因是有信誉的公司Facebook的支持。Instagram、Whatsapp和Twitter等服务目前都在这个框架的基础上工作。他们都是非常快,有一个迷人的外表。这确保了对React.js的高度信任。
尽管有多个好处,只有少数情况下,当这个框架将是最合适的:
- 快速开发小型企业级应用;
- 创建SPA或跨平台应用程序;
- 扩展现有应用程序的功能。
这并不意味着React.js在其他情况下是坏的。这更像是选择性选择会更可取。
为什么Vue.js ?
Vue.js是近年来的一个发现。它突然从一个普通的框架变成了一个最受专业人士喜爱的框架。
The popularity of Vue.js over time. Source of the image
值得注意的是,它的普及是在没有大公司支持的情况下发展起来的。市场巨头们只是在Vue.js暴涨之后才开始关注它。这就是为什么它成为了React.js和angle .js长期对立的第三个框架。
Vue.js因为拥有大量的特殊方面而脱颖而出。有些甚至会出现缺点,例如,vue.js非常灵活。然而,在一个大团队中从事一个大项目的情况下,它可能会引发大量的错误。
在Vue.js开始展示其独特的特性后,许多市场巨头如Gitlab, WizzAir, EuroNews都关注了它。Grammarly完全是在Vue的基础上创建的,阿里巴巴和小米在2018年宣布完全过渡到Vue.js。
此外,这种框架在今天的亚洲市场需求很大。因此,更多的讨论和使用技巧都是中文的。你不懂那门语言?你必须把自己限制在用英语写文档和推荐。
尽管这个框架突然流行起来,但对开发人员的需求并没有增加到同样的程度。具体来说,LinkedIn上的Vue.js查询只有8000个职位空缺,实际上大约有4000个。
在什么情况下,vuei .js会是更好的选择?
- 开发“智能”和高性能应用程序;
- app的早期进入市场;
- 创建像Grammarly这样的小型轻量级应用程序。
为什么Angular.js ?
Angular.js 一直是开发用户界面的最佳选择。所以它成为了流行的stack MEAN的一部分。
Interest in Angular.js over time. Source of the image
尽管如此,在过去的几年里,开发人员一直在抱怨这个框架与竞争对手相比存在不足。因此,许多公司逐渐放弃使用Angular.js。
在很大程度上,由于新的web开发趋势的出现,这种框架失去了它的流行。Angular.js的团队没有在新版本的框架中实现所需的功能。这就是为什么我们看到Vue.js和React.js在今天变得越来越受欢迎的原因。如果超出了这三种框架的范围,那么Angular.js有时就不如其他工具(例如,Svelte)。
然而,Angular.js仍然被用来支持许多流行的网站和web应用程序。它们包括《卫报》、UpWork、PayPal和索尼。他们都是主要的网站,Angular.js证明了自己很好。
最有趣的是对Angular.js专家的需求。尽管受欢迎程度和估计的下降,需求实际上是在同一水平上的反应。js。具体来说,LinkedIn上有30000个职位空缺,Indeed上有超过5000个。
在什么情况下需要注意Angular.js?
- 创建大规模应用程序;
- 需要非常可伸缩的架构;
- 创建信使和其他应用程序«实时»;
- 使用TypeScript编写代码。
结论
根据统计数据、调查结果和各种报告,我们可以得出结论,2021年的最佳选择是React.js。第二名是Vue.js和Angular.js以较大的优势位居第三。
但是如果你从统计数据中抽象化,只考虑上下文的使用,那么就目前而言,没有最好的框架。无论如何,每种框架都有其优点和缺点,同样,每种框架都有很多的崇拜者和反对者。
选择权在你。
原文:https://merehead.com/blog/angular-vs-react-vs-vue-best-choice-2021/
本文:http://jiagoushi.pro/node/1267
讨论:请加入知识星球【首席架构师圈】或者小号【jiagoushi_pro】或者QQ群【11107777】
最新内容
- 6 days 15 hours ago
- 6 days 15 hours ago
- 6 days 16 hours ago
- 6 days 16 hours ago
- 6 days 16 hours ago
- 1 week 5 days ago
- 1 week 6 days ago
- 2 weeks 2 days ago
- 2 weeks 2 days ago
- 2 weeks 2 days ago