js教程

web前端开发ReactJS,AngularJS, Vue.js优劣对比分析

我的站长站 2020-01-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工作信息,得到如下的分布图。

web前端开发ReactJS,AngularJS, Vue.js优劣对比分析

根据我们的分析,我们决定分享我们对每一个框架的优点和缺点的理解,希望可以帮助专业人士或则工程师做框架选型。

Angular

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

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

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也即将被列入。每一个框架都有各自的优点和缺点,所以主要是看自己的应用场景下哪个框架最适合。

相关推荐
  • 前端开发
  • web教程
  • vue教程
  • 珠峰培训前端开发51G全套视频教程
    珠峰培训前端开发51G全套视频教程

    珠峰前端开发截图视频教程列表NODE和PROMISE.rar9.AXIOS视频.rar8.AJAX.rar7.移动端开发.rar6.事件、事件委托、发布订阅.rar5.定时器、异步、动画库、轮播.rar4. 前三周综合复习.rar3.Dom盒子模...

    视频教程 166 4年前
  • Web前端性能优化方法

    Web前端性能优化主要方法分为2个,资源合并与压缩。主要功能是减少http请求数量,减少请求资源的大小。具体方法HTML压缩:注释也可被压缩,无效代码删除,css 语义合并。JS压缩:无效字符的删除;剔除注释,代码语义的缩减和优化文件合并:文件合并与不合并对比,公共库...

    服务器配置 258 5年前
  • jquery前端框架EasyUI视频教程[Lxe版]打包下载
    jquery前端框架EasyUI视频教程[Lxe版]打包下载

    jquery easyui视频教程简介jQuery EasyUI是一组基于jQuery的UI插件集合,而jQuery EasyUI的目标就是帮助web开发者更轻松的打造出功能丰富并且美观的UI界面。开发者不需要编写复杂的javascript,也不...

    视频教程 157 5年前
  • Python+Web 应用开发实战视频教程
    Python+Web 应用开发实战视频教程

    Python是一种计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。...

    视频教程 113 5年前
  • 《Web安全深度剖析》pdf下载
    《Web安全深度剖析》pdf下载

    内容简介《Web安全深度剖析》总结了当前流行的高危漏洞的形成原因、攻击手段及解决方案,并通过大量的示例代码复现漏洞原型,制作模拟环境,更好地帮助读者深入了解Web 应用程序中存在的漏洞,防患于未...

    电子书 215 4年前
  • 2019最新WEB前端开发全套视频教程
    2019最新WEB前端开发全套视频教程

    2019最新WEB前端开发全套视频教程课程列表【27】源码+课件+软件【26】拓展课程:Angular5全栈式在线项目【25】拓展课程:Angular5【24】拓展课程:ReactNative电影实战项目【23】拓展课程:React【22】...

    视频教程 161 4年前
  • vue2.0 新闻客户端 实战视频教程
    vue2.0 新闻客户端 实战视频教程

    课程介绍首先,我们对Vue2.0做个基本的介绍,Vue.2.0是一套构建用户界面的渐进式框架。与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计。Vue 的核心库只关注视图层,它不仅易于上手,还便于与...

    视频教程 140 5年前
  • 2019最新Vue+Vuex+MintUi+ElementUi+Mpvue入门实战视频教程
    2019最新Vue+Vuex+MintUi+ElementUi+Mpvue入门实战视频教程

    课程介绍2019更新6小时学会Vue入门实战视频教程6小时让你学会Vue开发,没错就是6小时,细致的讲解,详细的剖析,幽默的案例,由浅入深,逐步深入,让你快速了解并掌握Vue的组件、Vue中的请求数据、Vue的路由、...

    视频教程 190 5年前
  • web前端开发ReactJS,AngularJS, Vue.js优劣对比分析

    在全球大范围看,React和Angular依然遥遥领先,Vue.js这位后起之秀还需努力做到全球化!为了保证可读性,本文采用意译而非直译。另外,本文版权归原作者所有,翻译仅用于学习。JavaScript框架的更新节奏可以说日新月异,我们可以看到Angular不停地在发布新的版本,R...

    js教程 164 4年前
最新更新
  • js返回上一页、刷新页面代码大全

    返回上一页代码:<a href="javascript:history.go(-1)">返回上一页</a>onclick返回上一页代码:<a href="javasc...

    js教程 2天前
  • js语言!=与!==的区别

    != (不等于)!= 是松散的不等于运算符。它在比较两个值时,会先进行类型转换(type coercion),然后再比较值是否不...

    js教程 6天前
  • JS防止网站被扒的解决方法

    这个代码能够直接保护整个站,而不再是单个页面,直接把代码放到自己的网站上,如果是博客建议放到header.php头部...

    js教程 3周前
  • Hexo插件开发实战教程

    Hexo的插件嵌入有两种方式,一种是通过脚本(Scripts)的方式引入,一种是通过插件(Packages)的方式将自定义的插件内...

    js教程 1个月前
  • JavaScript定时删除指定元素方法

    JavaScript定时删除指定元素一般用到自动隐藏的效果功能上面,主要用到了JS的setTimeout语法。下面是一个定时...

    js教程 1个月前