React、Vue和Angular
React
React起源于Facebook的内部项目,用来架设Instagram 的网站,于2013年5月开源,并于2017年9月27发布v16.0版本,遵循MIT许可,即完全开源。
- 特点:
- 声明式设计:React采用声明范式,可以轻松描述应用。
- 高效:React通过对虚拟DOM技术,最大限度地减少与DOM的交互。
- 灵活:React可以与已知的库或框架很好地配合。
- 优点:
- 速度快:在UI渲染过程中,React通过在虚拟DOM中的微操作来实现对实际DOM的局部更新。
- 跨浏览器兼容:虚拟DOM帮助我们解决了跨浏览器问题,它为我们提供了标准化的API,甚至在IE8中都是没问题的。
- 单向数据流:Flux是一个用于在JavaScript应用中创建单向数据层的架构,它随着React视图库的开发而被Facebook概念化。
- 有庞大而活跃的社区。
- 相关的开发工具功能丰富。
- React Native使得Web应用的逻辑可以复用于移动客户端
- 缺点:
- React使用一种新的语法JSX,需要额外学习成本。
- React实际上只操作了view层,需要配合react-route和redux构建大型应用。
- 使用React技术栈的公司:阿里巴巴、美团内部系统、去哪儿等。
- 优秀的组件库:Ant Design(蚂蚁金服)
Vue
Vue.js的作者为Evan You(尤雨溪),任职于Google Creative Lab。Vue.js由个人项目发展成为开源项目,现为最流行的前端框架之一,目前更新到Vue2.0版本。
- 特点
- 轻量级的框架。
- 支持双向的数据绑定。
- 通过指令扩展了HTML。
- 优点:
- 简单:官方文档很清晰,简单易学。
- 灵活:不断繁荣的生态系统,可以在一个库和一套完整框架之间自如伸缩。
- 高效:20kB min+gzip 运行大小,超快虚拟 DOM,最省心的优化 。
- 吸收了angular和react的优点。
- 缺点:
- vue是新的框架,相对来说没angular成熟。
- 同样有很多额外的模块,如路由器和状态管理工具。
- 默认不支持IE9以下浏览器。
- 使用Vue技术栈的公司:
饿了么、稀土掘金(内容分享网站)、美团等。 - 优秀的组件库:
Element UI
Angular
AngularJs是Google开源的一款JavaScript MVVM框架,弥补了HTML在构建应用方面上的不足,通过指令扩展HTML词汇,使开发者可以动态声明HTML内容,目前已更新到angular4.0版本。
- 特点
- 良好的应用程序结构。
- 双向数据绑定。
- 通过指令扩展HTML词汇。
- 以HTML为中心。
- 优点:
- 模板功能强大丰富,自带了极其丰富的angular指令。
- 是一个比较完善的前端框架,包含服务,模板,数据双向绑定,模块化,路由,过滤器,依赖注入等所有功能;
- 自定义指令,自定义指令后可以在项目中多次使用。
- angularjs是由谷歌开发,这也意味着他有一个坚实的基础和社区支持。
- 缺点:
- 陡峭的学习曲线,深入后概念很多。
- 对于数据量庞大的应用会有性能问题。
- 比较笨重。
- 使用Angular技术栈的公司:
锤子科技等。 - 优秀的组件库:
Angular Material
总结
Angular、React和Vue三者面对的都是web应用,其中Angular适应领域相对较窄一些,React可以扩展到服务端,移动端Native部分,而Vue比较轻量,可快速搭建业务场景比较轻的页面。