2017年前端炒的火热的莫非于三大框架,angular、vue、react,谈谈我对这三大框架的理解前端
期初在前三四年或者更早,前端还没被彻底分离出来,原生js开发前端页面,彷佛并不优雅,比如咱们盖房子,一块砖一块砖的盖,很耗时,也不方便维护,渐渐地jQuery库的产生,提升了开发人员的效率,减小了浏览器的兼容,一时间不少涨粉,到如今一些旧的项目仍然在使用,but,他没有mvc,mvvm构架,须要本身进行配置。vue
后来出现了mvc框架的angular,这个效率比较低,只要发生变化,就得从新遍历计算;react
而后出现了react,react的虚拟dom减小了dom操做,下降了项目成本,提升效率和程序性能,可是react是基于view层的,他须要配合一些其余的框架,如flux,redux等,若是拿react跟vue比较的话,使用起来会相对复杂,好比,不能使用指令,遍历不方便,;算法
而vue相对react而言,没有react灵活,搭配自如,可是他开发起来很高效,vue的插件,组件,生态系统对于咱们通常的项目已经足够了,虽然vue的是我的主导的,react是Facebook团队维护的,社区比较繁荣,但vue适合不少项目,也正在慢慢的扩大,前景也是很不错的。redux
做为元老级的Angular,先后经angular一、angular二、angular4,每一个版本彷佛都是一个新的框架。api
angular1中的ng-if和vue的v-if很相像,由于vue的指令系统就是从angular1中获取的灵感,并且angular1中 的不少问题在vue中得以解决;浏览器
到了angular2,他比起1来讲,是一个全新的框架,好比说,有更优秀的组件系统,api也变了不少等等,虽然改进了不少,但仍是很臃肿;angular2
相比于angular2,angular4的功能列表中添加了许多新功能,同时还有一些旧功能的改进,使用angular4程序将会消耗更少的空间,比起之前的版本运行的更快。react-router
当项目对性能要求不高的时候,可使用angular,或者一些曾经一直用的angular1的项目有必要升级一下了,并且哪有不要求性能的项目,因此angular对于一些新型项目慎重考虑...架构
官方说react是由于Facebook对市场上的mvc框架都不满意,本身写了一套用来架构Instagram网站,由于好用,2013年5月开源的,到先在2017年末,react已经升级到了16.2,路由react-router3升为react-router4,react-router-dom
react不得不提的是虚拟DOM(Virtual DOM),当页面初次加载的时候会产生一颗dom树,内存中会产生一颗render树,当数据发生更改的时候,会将更改的内容和存有的render树进行对比,找出最优的算法,而后更改render树,最后从新生成页面的dom树,有了虚拟dom,前端的性能提升了不少。
react的组件化思想尤其体现,将view层分红各个独立的组件,下降耦合度,组件化使得组件间可组合,可重用,可维护,从而大大提升开发效率
react是基于view层的,要想发挥他的做用,必须配合一些插件,例如flux,redux等,固然,能够配合更多的库来达到更好的效果
react的使用基本上是大型项目的首选,组件化和灵活性是大型项目的条件,其次,react native可让react运行在移动设备上。
Vue是2014年2月开源的,尤大牛主导的vue编写,到目前为止升级到了v2.5,vue的全家桶Vue-router,Vuex,服务端渲染,以及vue的虚拟dom,组件化,性能,不差于react,对于没有Angular 和react经验的团队,而且规模不是很大的前端项目来讲,vue是一个很好的选择
框架的选型不只要看项目自己,还要综合公司团队,团队的技术栈可能直接致使项目框架的选型