Angular 是基于 TypeScript 的 Javascript 框架。由 Google 进行开发和维护,它被描述为“超级厉害的 JavaScript MVW 框架”。Angular(也被称为 “Angular 2+”,“Angular 2” 或者 “ng2”)已被重写,是与 AngularJS(也被称为 “Angular.js” 或 “AngularJS 1.x”)不兼容的后续版本。当 AngularJS(旧版本)最初于2010年10月发布时,仍然在修复bug,等等 —— 新的 Angular(sans JS)于 2016 年 9 月推出版本 2。最新的主版本是 4,由于版本 3 被跳过了。html
React 被描述为 “用于构建用户界面的 JavaScript 库”。React 最初于 2013 年 3 月发布,由 Facebook 进行开发和维护,Facebook 在多个页面上使用 React 组件(但不是做为单页应用程序)。前端
Vue 是 2016 年发展最为迅速的 JS 框架之一。Vue 将本身描述为一款“用于构建直观,快速和组件化交互式界面的 MVVM 框架”。它于 2014 年 2 月首次由 Google 前员工 Evan You 发布。vue
对比 | Vue | React | Angular |
---|---|---|---|
出现年月 | 2014-2 | 2013-3 | 2010-10 |
框架类型 | MVVM | MVC | MVW |
开源许可 | MIT license | BSD3-license | MIT license |
MIT license 与 BSD-license 之间的区别是:MIT license 容许衍生软件加上咱们本身的名字作推广,而 BSD license 不能够。
Vue | React | Angular | |
---|---|---|---|
开发与维护 | 独立开发者 | ||
团队人数 | 25 | 未知 | 40 |
stars | forks | issues | updated | created | |
---|---|---|---|---|---|
angular.js | 59308 | 29000 | 487 | Dec 18, 2018 | Jan 6,2010 |
Vue | 122678 | 17540 | 230 | Dec 20, 2018 | Jul 29,2013 |
React | 117977 | 21403 | 525 | Dec 20, 2018 | May 25,2013 |
angular | 43663 | 11223 | 2618 | Dec 20, 2018 | Sep 19,2014 |
统计的数据有时效性,如需了解最新的数据点我java
百度指数上的一个比较react
搜索指数:指的是关键词最近一个月的整体搜索指数表现。git
日均值:一段时间内搜索指很多天均值。angularjs
同比:与去年同期的同比变化率。github
搜索指数趋势:互联网用户对键词搜索关注程度及持续变化状况。web
谷歌趋势算法
2. 按区域比较细分数据
stackoverflow
Stack Overflow 是一个与程序相关的 IT 技术问答网站。该网站拥有 400 万用户,每个月 5.6 亿的页面浏览量。
咱们对 Stack Overflow 2018 调查报告 进行分析(数据统计时间与本文时间差距较远,数据存在延后)。
Angular 与 React 排名靠前,Vue 未上榜。 * 目前你们最喜好的技术框架排名:
相对 Angular 来讲,React 的表现很抢眼,Vue 未上榜。
statejs 网站使用了一套包含上百个问题的问卷调查,从超过 20000 名开发者中得出的 2018 年关于前端框架调查,结果 以下:
较多开发者想学 Vue,而 React 目前拥有最多的开发者。
总结:国内 流行 Vue,国外流行 React。
------------------------------
对比 | Vue | React | Angular |
---|---|---|---|
基于组件 | 擅长 | 擅长 | - |
依赖标准 | ES6 或 ES6 | ES6 | TypeScript |
底层技术 | 单个文件(模板+脚本+样式) | JSX | 模板 |
数据绑定 | 单/双向绑定 | 单向绑定 | 双向绑定 |
支持原生开发 | 支持(Weex) | 支持(react-native/react-native-renderer) | 支持(NativeScript、Ionic) |
服务端渲染 | nuxt.js | next.js | Angular Universal |
浏览器兼容 | ie8 + | ie9 + | ie9 + |
学习曲线 | 简单 | 中等 | 陡峭 |
底层技术
浏览器兼容:
React兼容全部经常使用的浏览器,包括IE9及以上的版本。
注意:咱们不支持那些不兼容ES5方法的老版浏览器,但若是你的应用包含了polyfill,例如es5-shim 和 es5-sham,你可能会发现你的应用仍然能够在这些浏览器中正常运行。若是你选择这么干,你就只能孤军奋战了。
学习曲线:
Vue,你只须要有良好的 HTML 和 JavaScript 基础。有了这些基本的技能,你就能够很是快速地经过阅读 指南 投入开发
任何框架都不会十全十美:Angular 框架很是臃肿。gzip 文件大小为 143k,而 Vue 为 23K,React 为 43k。
为了提升性能,React 和 Vue 都使用了虚拟 DOM(Virtual DOM)。
Angular,React 和 Vue 性能比较(源文件)
内存分配(源文件)
总结一下:Vue 有着很好的性能和高深的内存分配技巧。若是比较快慢的话,这些框架都很是接近(好比 Inferno)。请记住,性能基准只能做为考虑的附注,而不是做为判断标准。
本文首发于github,若是对你有帮助,能够给我点个star,谢谢