2016年到2017年两年时间,前端框架从jQuery一家独大的情况,发展到现在的Angular、Vue、React三足鼎立的情况,三个框架各有优略,也都是比较成熟,但是同样也造成了让人无从下手的感觉,不知该如何选择,下面就来谈一谈如何选择该使用什么框架。
Angular
Angular脱胎于谷歌与2009年发布的angular.js,一直到16年年初发布Angular2,1.X到2.X,用了7年,然后发布了2之后就想开挂了一样,迅速又发布了4,5两个大版本。angular是一套完整的解决方案,从路由到DOM展现,很完整的方案,1.X的版本也得到了很好的验证,很实用,但是由于2.X的版本对于1.X算是比较大的重写,从1切换到2代价比较大,所以导致很多人就此放弃。但是Angular仍然是比较优秀的解决方案之一。
Angular除了本身比较健壮,又是大公司出品,质量有保障,还有另外一个比较吸引人的地方在于Ionic,Ionic采用Angular和cordova两者结合,可以快速的用一套代码同时开发iOS,Android,windows Phone等多个平台,当然还不止这些,Ionic同时封装了很多常用的指令和组件,让开发跨平台的APP变得更加便捷。
React
React从一出现就受到广泛的关注,由于其出色的虚拟DOM、模块化设计、API简洁、声明式等特性,让React兼具了开发效率以及运行时的性能,React出自Facebook之手,也是大公司出品,质量有保障。截止本文时间,React在github上的star数量已经达到了84971个,笔者在React还处于0.13的版本开始接触,一经使用,立马就开始重度依赖,无论是后续的公司项目,还是个人项目都是使用React。使用下来,我选择继续使用React的原因有以下几点:
模块化开发,这点很重要,笔者在使用jQuery开发的时候经常因为冗余的相同代码头疼不已,特别是某些可重复使用的业务组件却要同时维护多套代码。
JSX,JSX这种开发模式刚推出来的时候很多人不习惯,甚至很多人因为这一点就直接拒绝React,但是笔者用了两年之后会更习惯jsx的模式,因为这种代码更具可读性,比如这段代码:
可定制能力强,React本身只关注view层,所以可以实现更加自定义的需求,很多复杂的业务场景或者操作空间都可以轻松实现,而且实现出来的组件自定义能力也很强。
除了上面总结的三点,React被社区广为关注的另一个原因则是React-native,官网上号称:Learn once , write everywhere,React-native将虚拟DOM的概念移到了原生开发当中,并且用jsx的语法即可实现原生APP的开发,性能上要比H5加webview的模式上更高,既解决了性能的痛点,又提升了开发效率,打破了多端开发的技术壁垒,再加上现在社区出现很多优秀的跨端的组件库,可以轻松实现一套代码iOS和Android两端通用,其他平台由于用户量不多,不支持也没什么问题。
Vue
2016年是Vue崛起的一年,Vue2一经推出,其关注度迅速上升,采用类似Angular的指令的写法,配上虚拟DOM技术,再加上库的体积比较小,上手难度也小,迅速窜红,甚至超越Angular。Vue采用渐进式的开发,可以直接引入JavaScript便可进行开发,也可使用全家桶进行开发。笔者体验过Vue一段时间,Vue会更容易上手,且很多概念会更容易接受。
而且Vue的核心开发者是中国人,无疑在中国Vue的受欢迎程度要更高,且Vue的很多使用习惯会更符合国人的习惯。所以现在中国很多大大小小的公司都已经开始使用Vue来做主要开发框架。再者,之前阿里开源的weex框架正是使用Vue代码来实现一套代码,三端通用(H5,iOS ,Android),此项目已经捐赠给appache且被appache列入孵化器,相信不久后weex也将成为一个比较成熟的解决方案。
文末总结:
三大框架各有优劣,无所谓孰优孰劣,无论哪一种方案都比较成熟,也能完成日常的工作需求。至于选择哪款框架可根据实际情况决定,如果觉得希望快速上手,可以选择Vue,如果希望更高的移动端性能,以及更稳定的移动端开发,可以选择React,如果团队实力比较强,需要考虑多终端的开发,Angular是一个不错的选择。
关于作者:eaTong,主页:eaTong个人站。