要说2017年最主流的三大Web前端框架,应该非Angular、Vue和React莫属了。然而,在实际应用中,这三个框架并不相同。对于小型前端项目,Vue会被列为最佳,因为它易于使用。Angular非常擅长快速开发大型Web项目。令人钦佩,但仍有许多缺陷,React正在为JavaScript应用程序开发人员提供新的开发方法。那么,面对各有优缺点的开发框架,开发者应该如何选择呢?哪个框架更有前途?接下来,本文作者通过最近发布的JavaScript调查报告分享了自己15年的Web开发经验,深入分析了前端框架的流行趋势和未来发展,希望能为众多前端指明一些方向——终端开发者。以下为译文:事实上,一年前,当我的团队重新进行项目时,他们采用了Vue。-在24个月内成为主要的JS框架,至少对于后端开发人员和前端人员的小团队而言。当然,在2017年,如果React继续以目前的速度自我改进,它仍将在2017年主导前端框架。—2016年12月10日现在,这确实是正确的,根据最近一份关于JavaScript的调查报告来自网站stateofjs.com,超过23,000名开发人员参与其中。Stateofjs2017前端框架调查结果和往常一样,使用JavaScript编程语言的核心差异是由前端框架引起的。根据调查报告,相比于Angular和Vue,React是2017年最主要的JavaScript框架,尤其是ReactNative以最快的速度自我提升。同时,由于Angular的流行度下降,Vue也越来越流行。Stateofjs发布的2016年前端框架调查结果对比:综上所述,通过对比2017年和2016年的统计结果可以发现,Vue.js是过去一年大家最想学习的框架,所以我个人预测明年将是Vue.js成功的一年,当然React正在稳步增长,而Angular将无法跟上这两个竞争对手的步伐。2016年,当Vue.js被称为“另一个JS框架”时,它是一匹彻头彻尾的黑马,而React独领风骚,Angular成为开发者的第二选择。但是,Vue.js只会统治Web前端,而不是所有的前端领域。React可以在所有的前端领域大放异彩。为什么是这样?下面,我们就来揭晓答案。React称霸前端领域的关键因素,答案在Stateofjs.com发布的2017年移动和桌面应用前端框架调查结果中:Synergy是React称霸所有前端的关键领域。ReactNativeVue.js未能提供ReactNative的可行替代方案(Weex和Quasar太年轻,碎片化和脆弱),随着ReactNative和React.js的爆炸性增长,如果你掌握了Web前端React和Redux,你将获得一个巨大的优势:如果你愿意,你可以在几周内熟练地将ReactNative应用到移动端。至此,React相对于Cordova等Hybrid技术的优势已经充分展现。现在最火的前端需求是在移动端,而不是Web端。ReactNative非常成功,它也会带动React.js的发展。我们团队计划在2018年第一季度发布我们iOS和AndroidApps的大版本,从头开始重写公司网站(开发代码Q3,使用Vue.js和Yii2),新的App是基于ReactNative开发的.其实我们在一两年前就考虑过用ReactNative来重写我们的App,但是当时我们团队的Swift开发人员说没有。现在看来,这个决定是正确的,因为有时候我们需要等待技术成熟,这很重要。重要的。现在我们已经结束了用Swift开发iOS应用,用Java开发Android程序的局面,避免了不同操作系统app使用不同开发语言的痛苦。现在我们的Swift开发者正在使用ReactNative写JS代码,并且承认React确实好用,他认为现在是迁移到新的技术栈的好时机,因为很多时候ReactNative的优势大于劣势.我们使用Vue.js编写Web的前端人员在几周内就掌握了ReactNative,但我认为这种转变是值得的。如果我们的web也使用React.js,那么我们的技术栈就会变得更简单。我不后悔使用Vue.js开发Web,具体原因在我之前的一篇文章(http://pixeljets.com/blog/why-we-chose-vuejs-over-react/)中有解释,在事实上,我对Vue.js在web领域的预测已经成为现实,但我仍然期望中小型团队在2018年继续选择React进行web和移动开发。因为协同效应的存在,我相信这样的选择是明智的。使用Java和Swift/ObjectiveC来开发不同平台的APP固然没错,但是从商业的角度来看,其成本是非常高的。另外,相比ReactNativeCodepush,通过AppStore审核的难度也更大。它不是那么容易。GraphQLGraphQL是Facebook的又一款重量级产品,让React生态如虎添翼。虽然它目前不成熟、复杂且有其缺点,但看起来GraphQL将来很有可能取代REST。GraphQL标志着前端领域的大部分创新发生在React圈,然后这些创新被其他框架采纳和改进。Angular的未来预测Stackoverflow提供了一个关于前端开发人员问题的有趣图表:Angular在这张图表中看起来不错,但我认为这对于Angular作为框架的长期成功来说并不是一个好兆头。在我看来,对于维护遗留Angular1代码的开发人员来说,从Angular1迁移到Angular2+是一个明智的选择,但是当他尝试迁移并看到Angular新旧版本之间的巨大差异时,这有时会令人沮丧,这个事实解释了Stackoverflow上的大量问题。Vue.js的缺陷尽管Vue.js还不支持移动应用程序,但在2017年的一段时间内,它通过获得开发人员的支持赢得了与React的竞争。WordPress正在考虑将React用于其前端布局,并且可能会将Vue.js添加到WordPress生态系统中,就像Laravel一样。但Facebook很快调整了React许可证并扼杀了这个想法。写在***通过三大框架的对比,我们更倾向于React,这里也推荐其他团队根据自身情况选择Vue.js或者React。基于此,开发者也在HackerNews(https://news.ycombinator.com/item?id=15999688)发表了自己的看法:@antoriv:在这份调查报告中,我最感兴趣的是Percentage,即(之前用过,会再次使用)/(以前使用过,再次使用+以前使用过,不会再使用)。2016年:React–91%满意度Vue–91%满意度Angular2–65%满意度无框架–65%满意度Ember–50%满意度Angular–40%满意度Backbone–31%满意度2017:React–93%满意度Vue–91%满意度Angular2–66%满意度Noframework–65%满意度Aurelia–56%满意度Polymer–53%满意度Ember–41%满意度Angular–33%满意度Backbone–23%满意度其中,特别有趣的是许多框架具有更高的满意度比“没有框架”。当然,这主要是因为很多开发者并没有使用框架。我遇到过一些开发人员(通常是后端开发人员),他们认为前端框架是无稽之谈,更喜欢只写一堆jQuery。另外,如果您在WordPress网站上工作,通常不需要框架。就个人而言,我习惯在这些框架(Backbone、Angular1、Ember和React)中编写代码,而且我更喜欢React。@philliphaydon:对于Angular2,我认为我不会再使用它了。因为它制造的问题远远多于它解决的问题。构建大型应用程序需要大量的知识和经验,否则你总会遇到性能问题。
