Angular、Vue、React三大框架鼎力2017

6G未来
• 阅读 10279

2017年前端炒的火热的莫非于三大框架,angular、vue、react,谈谈我对这三大框架的理解

期初在前三四年或者更早,前端还没被完全分离出来,原生js开发前端页面,似乎并不优雅,好比我们盖房子,一块砖一块砖的盖,很耗时,也不方便维护,渐渐地jQuery库的产生,提高了开发人员的效率,减少了浏览器的兼容,一时间很多涨粉,到现在一些旧的项目仍然在使用,but,他没有mvc,mvvm构架,需要自己进行配置。

后来出现了mvc框架的angular,这个效率比较低,只要发生变化,就得重新遍历计算;

然后出现了react,react的虚拟dom减少了dom操作,降低了项目成本,提高效率和程序性能,但是react是基于view层的,他需要配合一些其他的框架,如flux,redux等,如果拿react跟vue比较的话,使用起来会相对复杂,比如,不能使用指令,遍历不方便,;

而vue相对react而言,没有react灵活,搭配自如,但是他开发起来很高效,vue的插件,组件,生态系统对于我们一般的项目已经足够了,虽然vue的是个人主导的,react是Facebook团队维护的,社区比较繁荣,但vue适合很多项目,也正在慢慢的扩大,前景也是很不错的。

Angular

作为元老级的Angular,前后经angular1、angular2、angular4,每个版本似乎都是一个新的框架。

angular1中的ng-if和vue的v-if很相像,因为vue的指令系统就是从angular1中获取的灵感,而且angular1中 的很多问题在vue中得以解决;

到了angular2,他比起1来说,是一个全新的框架,比如说,有更优秀的组件系统,api也变了很多等等,虽然改进了很多,但还是很臃肿;

相比于angular2,angular4的功能列表中添加了许多新功能,同时还有一些旧功能的改进,使用angular4程序将会消耗更少的空间,比起以前的版本运行的更快。

  • 使用场景

当项目对性能要求不高的时候,可以使用angular,或者一些曾经一直用的angular1的项目有必要升级一下了,而且哪有不要求性能的项目,所以angular对于一些新型项目慎重考虑...

React

官方说react是因为Facebook对市场上的mvc框架都不满意,自己写了一套用来架构Instagram网站,因为好用,2013年5月开源的,到先在2017年底,react已经升级到了16.2,路由react-router3升为react-router4,react-router-dom

  • 虚拟dom

react不得不提的是虚拟DOM(Virtual DOM),当页面初次加载的时候会产生一颗dom树,内存中会产生一颗render树,当数据发生更改的时候,会将更改的内容和存有的render树进行对比,找出最优的算法,然后更改render树,最后重新生成页面的dom树,有了虚拟dom,前端的性能提高了很多。

  • 组件化

react的组件化思想尤为体现,将view层分成各个独立的组件,降低耦合度,组件化使得组件间可组合,可重用,可维护,从而大大提高开发效率

  • 灵活性

react是基于view层的,要想发挥他的作用,必须配合一些插件,例如flux,redux等,当然,可以配合更多的库来达到更好的效果

  • 使用场景

react的使用基本上是大型项目的首选,组件化和灵活性是大型项目的条件,其次,react native可以让react运行在移动设备上。

Vue

Vue是2014年2月开源的,尤大牛主导的vue编写,到目前为止升级到了v2.5,vue的全家桶Vue-router,Vuex,服务端渲染,以及vue的虚拟dom,组件化,性能,不差于react,对于没有Angular 和react经验的团队,并且规模不是很大的前端项目来说,vue是一个很好的选择

总结

框架的选型不仅要看项目本身,还要综合公司团队,团队的技术栈可能直接导致项目框架的选型

点赞
收藏
评论区
推荐文章
blmius blmius
4年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
美凌格栋栋酱 美凌格栋栋酱
7个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
徐小夕 徐小夕
4年前
《精通react/vue组件设计》之用纯css打造类materialUI的按钮点击动画并封装成react组件
前言作为一个前端框架的重度使用者,在技术选型上也会非常注意其生态和完整性.笔者先后开发过基于vue,react,angular等框架的项目,碧如vue生态的elementUI,antdesignvue,iView等成熟的UI框架,react生态的antdesign,materialUI等,这些第三方UI框架极大的降低了我们开发一个项目的成本和
Wesley13 Wesley13
3年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Easter79 Easter79
3年前
SwiftUI 跨组件数据传递
作者:Cyandev,iOS和MacOS开发者,目前就职于字节跳动0x00前言众所周知,SwiftUI的开发模式与React、Flutter非常相似,即都是声明式UI,由数据驱动(产生)视图,视图也会与数据自动保持同步,框架层会帮你处理“绑定”的问题。在声明式UI中不存在命令式地让一个视图变成xxx
前端开发框架发展概览
基于Angular产生的灵感,前谷歌工程师EvanYou开发了Vue,Vue是一种轻量级的前端框架,它借鉴了Angular和React的优点,并在此基础上进行了改进。Vue提供了简单易用的API和模板语言,使得开发人员可以更加便捷地构建Web应用程序。Vue的学习曲线相对较低,加上完善的文档和社区,它也成为了许多开发人员的首选。
6G未来
6G未来
Lv1
过尽征鸿来尽燕,故园消息茫然。
文章
3
粉丝
0
获赞
0