要说2017年最主流的三大Web前端架构,应该非Angular、Vue和React莫属了。但是,在实际使用中,这三种结构并不相同。对于小型前端项目,Vue会被列为最佳,因为它易于使用。Angular非常适合快速开发大型Web项目。令人钦佩,但仍有许多缺点,React正在为JavaScript应用程序开发人员提供新的开发方法。那么,面对不同的开发结构,开发者应该如何选择呢?哪种结构更有前途?接下来,本文作者通过最近发布的JavaScript调查报告,对前端架构的流行趋势和未来发展进行了深入分析,希望能为广大前端开发者指明一些方向。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的发展。分别使用Java和Swift/ObjectiveC来开发不同平台的APP固然没错,但是从商业的角度来看,其成本是非常高的。另外,相对于ReactNativeCodepush,要通过AppStore的审核并不容易。太简单。GraphQLGraphQL是Facebook的另一款重量级产品,它让React生态变得更加强大。虽然它目前不成熟、复杂且有其缺点,但看起来GraphQL可能会在未来取代REST。GraphQL意味着前端领域的大部分创新都发生在React圈,然后这些创新被其他结构采用和改进。Angular的未来推测Stackoverflow提供了一个关于前端开发人员问题的有趣图表:Angular在这张图表中看起来不错,但我认为这对于Angular作为一个结构的长期成功来说并不是一个好兆头。在我看来,从Angular1迁移到Angular2+是维护遗留Angular1代码的开发人员的正确选择,但是当他尝试迁移并看到Angular的新旧版本之间存在巨大差距时,这可能会令人沮丧试图做出区分,这个事实解释了为什么Stackoverflow上有这么多问题。Vue.js的弱点尽管Vue.js还不支持移动应用程序,但在2017年的一段时间内,它通过获得开发人员的支持赢得了与React的竞争。Wordpress正在考虑使用React来构建其前端布局,并且很可能会像Laravel一样加入Vue.js到Wordpress生态系统中。但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网站上工作,通常不需要结构。
