8 685 2020-11-18 14:11:01
收藏在全球大范围看,React和Angular依然遥遥领先,Vue.js这位后起之秀还需努力做到全球化!
为了保证可读性,本文采用意译而非直译。另外,本文版权归原作者所有,翻译仅用于学习。
JavaScript框架的更新节奏可以说日新月异,我们可以看到Angular不停地在发布新的版本,ReactJS和Vue.js也不甘落后。我们来看看最近5年Google的搜索趋势。图中蓝色、红色和黄色分别表示Angular、React和Vue.js。
在2013-2014年间,React和Angular的热度略微有些许差别。之后,它们之间的差距逐渐拉大。从2016年中期开始,React开始增长,逐渐接近Angular的热度。Vue.js框架一直处于垫底状态,不是很流行。不过呢,也有逐渐转热的趋势,我相信它会越来越热门。
总的来说,React和Angular一直保持着相对一致的发展步调。如果要我尝试做个预测,那么React会持续升高,Angular有所下滑。Vue.js依然不是很明晰,不过由于其框架的简洁性,发展也不错。
我们同时也分析了世界范围内前端招聘对框架要求的数据。我们从Indeed.com获得超过60,000工作信息,得到如下的分布图。
根据我们的分析,我们决定分享我们对每一个框架的优点和缺点的理解,希望可以帮助专业人士或则工程师做框架选型。
Angular是一个从2009年就开始推出JavaScript MVVM框架,对于构建高度可交互的网页应用非常方便。
优点
新特性:RXJS,快速编译(3秒内),新的HttpClient;
详细的文档几乎涵盖了所有必须的信息,你甚至不需要向同事咨询。不过,你需要更多的时间去学习;
数据双向绑定,可以减少出错的风险;
MVVM(Model-View-ViewModel)使得开发者可以针对同一个App模块同时开发;
依赖注入使得模块化和模块中组件引入更加方便;
缺点
与生俱来的复杂的语法;好在Angular 5使用TypeScript 2.4,已经简单多了;
迁移问题:从低版本升级到新版本的时候,不兼容导致迁移成本高。
使用Angular 5的公司:Upwork, Freelancer, Udemy, YouTube, Paypal, Nike, Google, Telegram, Weather, iStockphoto, AWS, Crunchbase。
ReactJS是一个Facebook在2013年开源的JavaScript库,可以非常方便地构建大型网页应用。
优点
易于学习:由于语法十分简洁,和Angular相比,React要容易得多。工程师只需要重温一下HTML的基本知识就足够。根本不需要像Angular一样,还要深度学习TypeScript。
高度的灵活性;
虚拟DOM将HTML,XHTML、或则XML的文档格式化成树形结构,这样浏览器可以更容易理解;
结合ES6/7,React可以很容易写出各种酷炫代码;
Downward数据绑定,也就是说父节点的数据不会受到孩子节点的影响;
100%的开源,每天都有来自全世界无数的开发者的更新和改进;
绝对的轻量级,因为数据处理既可以在用户端,也可以在服务端;
版本迁移非常容易,Facebook提供了”codemods”来自动化这一过程。
缺点
缺乏官方文档:ReactJS的快速开发使得文档的缺乏,众多开发者的维护也使其缺乏一个系统化的思路;
React因为太灵活增加了决策成本而不好使;
需要很长的时间去掌握,因为ReactJS需要你对如何将UI和MVC框架整合有一个足够深度的理解。
使用ReactJS的公司: Facebook, Instagram, Netflix, New York Times, Yahoo, Khan Academy, Whatsapp, Codecademy, Dropbox, Airbnb, Asana, Atlassian, Intercom, Microsoft。
Vue.js是一个2013年诞生的前端框架,非常适合用于构架非常灵活的UI和复杂的单页面应用。
优点
强化的HTML,也就是说Vue.js有着很多和Angular相似的特点。
详细的文档,Vue.js有着超级友好的文档,开发者可以快速的学会,这将会节省很多时间;
可适用性:你可以很快地从其它框架转移到Vue.js,因为它和Angular以及React都有一定的相似性;
非常棒的整合性:Vue.js可以同时用于单页面应用和更加复杂的网页应用。主要在于你可以用它编写很小的可交互部件,然后可以很容易地整合到现有的项目中而不会影响到整个系统;
可扩展性:Vue.js可以用于快速开发大型复用模板;
体积小:Vue.js只有20KB左右的大小,使得其速度和灵活性相对于其它框架都好不少。
缺点
资源匮乏:Vue.js依然在整个市场中只占有很小的比例,所以相应的资源、知识要少很多;
灵活性带来的风险:有时候,将其整合到大型项目的时候会有一些问题,但是你不见得能够找到解法;
来自中国:许多的元素和描述依然使用中文。这对于开发中会引入一些复杂性,好在越来越多的相关资料已经被翻译成英文。
使用Vue.js的公司:小米, 阿里巴巴, WizzAir, EuroNews, Grammarly, Gitlab and Laracasts, Adobe, Behance, Codeship, Reuters。
结论:对于一个真正的工程师,选用什么框架并没有多大的区别,因为你只需要花时间去学习和熟悉它们。
我们公司里面有精通ReactJS和Angular2/4/5的专家,Vue.js也即将被列入。
每一个框架都有各自的优点和缺点,所以主要是看自己的应用场景下哪个框架最适合。
本文地址:https://xzo.com.cn/develop/js/316.html
如果您认可我们的分享,有意与我们合作开展帝国cms网站建设与开发业务或插件定制,请联系右侧在线客服。我们能给您的,就是高质量的模板与售后。
标注了信息来源为下载鸥的文章皆为原创,如果是转载的优质文章,我们也都标注了出处。如果您喜欢我们的文章,请按照下载鸥所标注的文章出处进行标注,谢谢您的配合。
JavaScript(简称“JS”) 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。JavaScript 基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式和声明式(如函数式编程)风格。
JavaScript十分强大,不管是前端页面开发、视觉动态渲染、数据交互还是后端逻辑处理,都可以通过JS实现。虽然它是作为开发Web页面的脚本语言而出名,但是它也被用到了很多非浏览器环境中。
在各种盛大的节日、活动前,网站制作倒计时特效可有效给活动页引流。那么,怎样...
在网站表单提交前,我们往往需要验证一下信息避免错误数据,那么,怎样验证手机号...
在通过jQuery做数据交互时我们可能存在这样的需求:通过点击按钮清空ul里的li...
很多网站上会有当前年月日、星期、时间的展示。这个展示用php做未免浪费性...
我们常用$(window).height() 和 $(document).height()来监听当前高度,但这个...
分享一段js原生点击复制data-*属性的源码,根据onclick事件触发,复制当前元素...
通过灵活运用js,我们可以轻松实现点击追加相关信息到textarea的功能。这个功...
在很多网站中,图片的默认路径是相对于根目录的绝对路径,如果是其他站点引用,则...
用户体验是我们的需求,百度蜘蛛的认可更是我们的需求。毕竟,没有收录排名,何来...
一直没看到好用的帝国cms在线考试插件,所以自己开发了一款。在线考试插件用...
帝国cms有自带的给关键词添加内链功能,但需要手动添加关键词,容易出现疏漏和...
百度开放了系列AI功能api如图像上色、图像去雾、图像修复、无损放大、清晰...
通过本插件,可以实现帝国cms网站对接百度云api实现图像无损放大的功能。经过...
通过本插件,可以实现帝国cms网站对接百度云api实现图像去雾的功能。经过实际...
因客户需要一键推送到多平台,下载鸥开发了这款一键推送至百度、必应、神马插...
许多网站会做一些小功能小插件给客户使用以增强用户黏性,比如图片转文字,这种...