logo.png
三大主流框架相比之前的框架来说,可以说是革命性的,主要是引入响应式和组件化 两大特性
- 响应式
响应式也就是数据驱动视图,也称MVVM模式,替代了之前用大量jquery代码操作dom方式,实现视图与数据分离,方便性和可读性都大大提高 - 组件化
组件化事独立和可复用的代码单元,通过组件化开发大幅度提高开发效率和复用性
快速对比:
| Vue | React | Angular | |
|---|---|---|---|
| 一句话概括 | 构建用户界面的渐进式框架 | 构建用户界面的高效且灵活JS库 | 基于TypeScript的开发平台 |
| 创始人 | 在Google 工作的尤雨溪 | Facebook公司 | Google公司 |
| 初始发行 | 2014年1月正式对外发布0.8.0版本 | 2013年7月发布v0.3.0版本 | 2016年9月发布Angular2 |
| 性能 | 优秀 | 优秀 | 优秀 |
| 学习曲线 | 小的学习曲线 | 中等学习曲线 | 陡峭的学习曲线 |
| 语言 | javacript也支持typescript | 纯javascript | typescript |
| 商业支持 | 通过众包赞助 | facebook公司 | Google公司 |
| 流行程度 | Github 196k 星 | Github 188k 星 | Github 81.3k星 |
| 关注点 | 分离关注点 | 关注灵活性 | 基于面向对象分层结构 |
| 模型 | 基于VirtualDom | 基于VirtualDom | 基于MVC架构 |
| 非常适合 | 适用于中小型web开发 | 适用于iOS和Android的现代Web开发和原生渲染应用程序 | 丰富大型Web应用程序 |
| 公司使用 | 国内公司(首先) | Facebook,Uber,Netflix,Twitter,Reddit,Udemy,Paypal,Walmart | Google,Wix,weather.com,Forbes |
特性区别
共同特点除了两大特性响应式和组件化,还有比如路由等等
-
双向数据绑定
Angular使用双向数据绑定,React使用单向数据绑定,Vue支持两者,React要想实现双向绑定需要额外实现,比较麻烦 -
代码结构
Vue与Angular语言比较像,特别是Vue2.x跟AngularJs,Vue3.x 高度集成Typescrpt以后,跟Angular比较像。因为Vue的想法很多来自于AngularJs。Angular采用MVC分层结构,严格面向对象,页面组件会包含三个文件,组件html,css,ts,而Vue会倾向于把这三个内聚在一个.vue文件里面,所以Angular会多很多文件。 -
语言支持:
Angular必须使用Typescript来开发,代码文件都是ts的,Vue2.x版本只是支持ts,但是主要还是javascript,到了Vue3.x 才实现与ts高度支持,变成主要ts文件了,而React 就是一切都是javascript -
JSX
JSX是一种JavaScript的语法扩展。在 React 中,使用JSX来描述用户界面,所有的组件的渲染功能都依靠 JSX;Vue也支持JSX语发,但还是页面还是使用Html模板;Angular不支持JSX。对于习惯HTML 的开发者来说,Html模板比起 JSX 读写起来更自然, 对于React方式会不习惯 -
指令
Angular与Vue都支持指令,React没有指令概念但通过其它替换
选型建议
- 三个框架性能表现都非常快,因此速度并不是选型的决定性因素
- 如果您新手,推荐选择Vue,可快速上手开发
- 如果您喜欢干净的代码,在应用程序中关注分离点 推荐使用Vue
- 如果您喜欢面向对象编程,Typescript编码,Angular是最佳选择
- 如果您更看重灵活性,推荐React
- 如果您是JavaScript爱好者,推荐React,因为它就是强大JS库
从github上面来看,vue最火,与React相差不大,Angular相对比较一般;React和Angular主要是国外公司,特别是大厂的都在用,适合大型系统,国内阿里也是用React,Vue主要国内公司用,特别合适那种中小型应用。建议新手先学Vue,后面再学React或者Angular。
框架历史
Vue
2013年,在Google工作的尤雨溪,受到 AngularJs启发,开发出了一款轻量级框架,最初命名为 Seed,12月更名为Vue,代表生机勃勃的绿色logo。用过的人会发现,其实vue2.6.x 语法跟Angularjs非常像,当然vue解决了angularjs 很多弊端
2014年1月 正式对外发布0.8.0版本
2015.10 发布1.0.0是第一个里程碑,随着vue-router、vuex、vue-cli 相继发布,标志着 Vue从一个视图层库发展为一个渐进式框架。
2016.10 发布2.0.0 第二个重要里程碑,吸收了React的虚拟Dom方案,还支持服务端渲染,也是从这个版本开始,火起来的。
2019.02 发布2.6.x 版本,承前启后的版本,在这之后就是3.x.x了
2020.09.18 正式发布v3.0.0,更小更快,对typescript 更好的支持
Vue 作为后起之秀,发展最快
React
2013年 Facebook开源了React,7月对外发布v0.3.0
目前最新的版本是18.1.x
Angular
Angular2.0之前其实叫AngularJS(1.0-1.8),Angular指的是Angular 2.0及之后版本
AngularJS 诞生于 2009 年,由 Misko Hevery 等人创建,后被 Google 收购,那个时候angularjs版本更新很慢到2016年angularjs版本才是1.7.*,更新速度比较慢, 目前最新的是1.8.x版本
2016年09月发布 Angular2.0,彻底从底层重构了,现在已经是分开两个产品,Angular2.0以后更新速度就快了,每个6个月就会升级一个大版本,目前最新是v13.3.x了








网友评论