这是三种最流行的工具,可以帮助开发人员构建Web应用程序。仔细阅读,看哪一个最适合您的需求。
在当今的发展世界中,技术发展非常迅速并且变化迅速,许多开发工具似乎可以解决不同的开发问题。在本次讨论中,我们将比较三种最受欢迎的前端开发技术 - Angular,React和Vue。我们正在根据项目架构或者从开发人员的角度来讨论这种比较,他们将为新项目选择技术。因此,我们首先需要明确决定是要开发单页面应用程序(SPA)还是标准的多页面应用程序。
库或框架?
因此,在深入比较之前,我们首先需要确定哪一个是必需的 - 一个库或一个框架?实际上,库被设计来执行一些特定的任务,而且通常并不复杂。因此,如果我们使用库来构建我们的应用程序,那么我们需要为每个任务选择一个库,以及设置任务运行者。库的主要优点是我们可以完全控制应用程序。但问题是建立该项目需要更多的时间。
另一方面,框架被设计用于执行更复杂的事情。所以如果我们使用框架,那么它会自动为我们解决很多问题。每个框架都有一个预定义的设计或结构,包括许多库和使用框架者。框架的主要优点是开发过程要快得多,因为它包含了我们执行不同任务所需的所有可能的库。但是一个框架比图书馆有更严格的设计。
React是一个用于构建用户界面的库,而Angular和Vue是用于相同目的的框架。
生命周期和战略比较
React于2013年3月首次发布,被描述为一个JavaScript库。React由Facebook开发和维护。Facebook将React用于多个页面上的许多组件,但不适用于创建单个页面应用程序。反应也用于优步,Netflix,Twitter,Reddit,Udemy,Paypal,沃尔玛等。
Angular是一个基于TypeScript的JavaScript框架。它由Google开发和维护。这是第一次在2010年10月发布,但已经经历了几次更新,目前正在对角6 角被描述为“Superheroic的JavaScript框架MVW”角使用由谷歌,维克斯,weather.com,福布斯,和其他人。
Vue是当今世界上发展最迅速的JavaScript框架之一。Vue被描述为“用于构建交互式界面的直观,快速和可组合的MVVM”。它于2014年2月首次发布。它是前谷歌员工Evan You的创意。2016年,Vue版本2发布。它由阿里巴巴,百度,GitLab和其他公司使用。
Angular,React和Vue都可以在MIT许可下获得。
核心发展
根据上述讨论,Angular和React得到了诸如Facebook,Google,Whatsapp等大公司的支持和使用。目前,Google在他们的很多项目中使用Angular,例如AdWords UI(用Angular和Dart实现)。Vue主要用于小型项目的个人。我们来看看GitHub上的一些统计数据:截止到2019年8月6号,
Angular拥有超过50106颗星和971名贡献者。React拥有133848多颗星和超过1,304名贡献者。Vue拥有近145342颗星和只有277名贡献者。这说明一个问题,从使用范围来讲,React比较受关注。
灵活性
通过简单地将JavaScript库添加到源应用程序中,我们可以使用React或Vue开始我们的开发工作。但是这对Angular来说是不可能的,因为它使用了TypeScript。在今天的Web开发世界中,我们越来越接近微服务和微应用程序,React和Vue通过只选择那些真正需要的东西,让我们更多地控制应用程序的大小。Angular最适合作为SPA应用程序的框架。
性能
在一个库或框架的大小的情况下,Angular相对于其他选项来说相当大。gzip文件大小为143k,而Vue为23k,React为43k。React和Vue都使用虚拟DOM来提高浏览器DOM的性能。在整体分析中,Vue表现出色,三者的内存分配最为深厚。但是这三个选项在性能方面真的非常接近。
如果你想检查源代码,那么你可以访问下面的GitHub仓库:
Angular:https://github.com/angular/angular
React:https://github.com/facebook/react
Vue:https://github.com/vuejs/vue
结论
React,Angular和Vue对于开发都非常有用,并且它们都没有明显好于其他的。所以下面我给出了一个表格,它将演示何时选择哪一个:
如果你仍然无法决定你需要选择哪一个,我建议你先学习React,然后是Vue,然后是Angular。因为前两个主要基于JavaScript,第三个完全基于TypeScript。
转自:https://baijiahao.baidu.com/s?id=1603124909427366498&wfr=spider&for=pc
其中github关注度和贡献者经过修改。