2017年8个最佳JavaScript框架
2017-01-16
分类:系统运维
阅读()
评论()
它感觉像每个月我们看到另一些关于最好的JavaScript框架或图书馆的文章。各种各样的JavaScript(JS)技术是一把双刃剑。一方面,我们可以为我们的 - 通常非常具体的 - 客户端应用程序找到最好的框架。另一方面,选择一个JS框架可能会非常恼人。 “JavaScript fatigue”是一种着名的疾病,它在于等待所有JS开发人员。但我们写了这篇文章提供治疗。
我们将回顾最常用的JavaScript框架和库,以帮助您为自己的网络应用程序开发选择正确的前端技术。 我们将不仅考虑本文中的
ReactJS和AngularJS ,还将考虑2017年的几个其他顶级JS框架。此评论应该帮助您了解框架之间的差异及其各自的优点和缺点。由于我们的审查旨在是公正的,我们将按名称升序列出JS技术的列表。
1. Angular 2 (Angular 3)
Angular 2是Google在2016年9月发布的。这个最新的前端框架提供了AngularJS的完全重新设计。可以说,React,一个流行的JS库(我们将在后面讨论)的出现,影响了AngularJS的发展,揭示了Angular必须改进以回到最佳JavaScript框架列表的顶部。在最新版本中,Angular看起来像一个完全不同的前端仪器。 Angular 2现在使用单向数据绑定,就像React一样,以提高单页应用程序的性能。但是Angular也保留了表单元素的双向数据绑定。使用ngModel指令和香蕉盒中的语法,您的Web应用程序可以同时更新视图和模型,就像您以前使用AngularJS。 Angular 2的另一个伟大的功能是与Polymer.js - 另一个Google发明,以及实现Web组件规范的第一个库之一的友好关系。您可以将Polymer组件包装到Angular 2组件中,并在您的应用程序中使用它们。这是相当方便。所以如果你来自Polymer社区,请注意Angular 2。 我们还在标题中提到了Angular 3,并且有很好的理由:Google已经答应每年对Angular发布一个巨大的更新。等待到2017年3月,你将能够使用Angular 3构建单页应用程序(SPA)。也很高兴知道Angular 3不会是框架的完全重新设计,但将简单地建立在Angular 2引入的实质性改进。 底线:鉴于Angular从Google和世界各地的开发人员那里获得了巨大的支持,Angular 2很容易成为开发客户端网络应用程序的首选。没有必要考虑AngularJS(1.x版本),除非你需要支持一个遗留的应用程序。
2. Aurelia.js
Aurelia.js是另一个开源的JavaScript框架,你可以考虑为你的应用程序。 Aurelia与许多现代版本的JavaScript - ECMAScript 2016,TypeScript和CoffeeScript都支持。 Aurelia框架还提供了自定义命令行界面,您可以使用它来启动基于Aurelia的应用程序。 但这些不是Aurelia的最大优势,因为许多其他现代框架支持ES6和TypeScript。 Aurelia的真正卖点是,你可以学习它比Angular更快。如果你不想学习Angular 2的指令,有时 - 奇怪的语法,你可以切换到Aurelia,并专注于vanilla JavaScript,前端程序员通常更喜欢。虽然Aurelia确实将JavaScript引入HTML - 你可以将JS表达式直接写入HTML属性 - 代码仍然比Angular 2更干净。
3. Ember.js
Ember.js是一个相对老的战斗员在JavaScript框架的战场。 Ember的Handlebars模板引擎,路由和组件,是一个用于前端开发的坚实的JavaScript框架。 Ember,像Aurelia,类似于Angular如何创建前端应用程序。使用Ember,通过使用双花括号将JS值插入到Handlebars模板中,将“binding”命令添加到HTML属性,然后Ember将自动更新应用程序的视图和模型。换句话说,双向数据绑定也是Ember的重要组成部分。 但是Ember不是像Aurelia这样简单的MVC框架:你需要掌握路由器,组件,适配器,序列化器和存储等概念。那么为什么学习Ember而不是一个更简单的JS框架? Ruby on Rails框架的关键开发人员之一 - Yehuda Katz - 参与了Ember的开发。如果你是一个Rubyist - 我们在
RubyGarage - 你会很快习惯了Ember的做事方式。最值得注意的是,您将根据熟悉的惯例配置原则工作。 Ember限制了你的创造力,但它的原因是值得称赞的:它允许你比使用一个高度灵活的JavaScript框架(如Aurelia)更快地编写代码和结构化你的应用程序。简而言之,Ember.js是非常有见地的,可能被认为是相当于Ruby on Rails的浏览器。
4. Knockout.js
Knockout.js实现了一种相当老派的方法来创建客户端应用程序。使用Knockout,您可以从您的jQuery的知识中受益最大 - jQuery模板(jquery.tmpl)是Knockout.js中Views的主要格式。对于其他库没有依赖性,重量小于60kb,Knockout是一个高效,轻量级的前端开发解决方案。 Knockout实现了Model-View-ViewModel架构。 Knockout中的ViewModels只是JavaScript类,您可以在其中定义一组将在“this”标识符中写入的对象属性。正如你可能已经猜到的,'this'标识符将成为使用data-bind属性连接到类的元素。这种开发客户端应用程序的方法与编写vanilla JavaScript非常相似。 如果您需要在2017年为旧浏览器创建单页应用程序,Knockout本质上是您唯一的选择。该库仍然支持古老的Internet Explorer 6和Firefox 3.5,而Ember,Angular和React仅在IE9及更高版本上工作。
5. Marionette.js(Backbone.js)
如果你仍然使用Backbone.js开发前端应用程序,你应该在2017年切换到Marionette.js。使用Marionette库,你可以使用除了View之外的Backbone的所有组件。对于Views,Marionette.js有自己的基类,实现所有的函数使用DOM API和事件。 虽然Backbone是构建JS框架的骨架,Marionette是一个使Backbone更简单使用的库。 Backbone的主要问题是很多样板代码,我们通常在视图中写。 Marionette的优点之一是你可以避免编写这个样板代码。 最新版本的Marionette - 3.0,在2016年提出 - 现在有一个完整的View组件,并提供对LoDash 4和Underscore的支持。鉴于这些和许多其他重要更新,Marionette是一个安全的选择,2017年。
6. Meteor.js
Meteor.js也是最流行的JavaScript框架之一。这是为什么?使用Meteor.js,与大多数其他JS框架不同,您可以为应用程序构建前端和后端组件。 Meteor专为全栈开发人员设计,他们知道JavaScript并想使用相同的语言编写他们的客户端代码和服务器端代码。如果你想开发你的第一个移动应用程序,你也可以使用这个框架。 Meteor的主要支持者Meteor开发组甚至创建了一个专门用于基于Meteor的应用程序的平台即服务托管解决方案。 除了Meteor PaaS产品之外,还有Atmosphere,一个专门用于Meteor.js扩展的公共存储库。大气中包含了数千个准备好的Meteor组件,因此您可以花更少的时间编写样板代码。 如果你曾经使用由MongoDB,Express.js,Angular和Node.js组成的MEAN堆栈,你会发现Meteor非常相似。 Meteor允许您使用Node.js并将数据保存到Mongo数据库。 Meteor是一个多用途机器,它与Angular,React和其他基于JS的技术相比具有其优点和缺点。虽然Meteor提供了许多功能开箱即用,但仍然有问题,为什么整个JS社区会切换到这个框架。为什么使用Blazer - 一个专有的模板引擎,当有Handlebars?为什么使用大气,当你能在npm找到一切吗?为什么使用专有模块bundler,当有Webpack和Gulp? Meteor的开发人员承诺解决这些问题,这就是为什么Meteor的发展已经变得非常积极。在2017年,我们一定会看到这个全栈框架的架构的许多重大变化。 Meteor可能会更接近JS标准,并使整个JavaScript社区更加友好。
7. Polymer.js
阴影DOM,模板,自定义元素和导入 - 所有这一切都是由Polymer,2015年发布的最先进的JavaScript库首次实现的。我们使用Web组件(我们在第一句中提到的四件事情)自由构建自定义HTML元素并将其插入到布局中 - 这正是Polymer允许我们做的。 Google正在积极开发将于2017年在Shadow DOM v1的支持下发布的Polymer 2.0的下一版本。 聚合在某些方面类似于双向数据绑定特性 - 类似于Angular和其他JS框架。但Polymer也提供了自己独特的解决方案,即Polymer App Toolbox。使用此工具箱,您可以开发基于组件的现代应用程序,提供响应式设计,并受益于Shadow DOM。您可以使用已经构建的自定义HTML元素。 Polymer的另一个引人注目的方面是,您可以将其与任何现代框架配对,就像React一样。正如我们前面提到的,你可以使用Polymer自定义元素,并用Angular 2包装它。之后,你只需要将这个元素作为一个web组件插入你的布局 - 它就完成了! Polymer当然值得一看。也许它不是最常用的JS库,但它是最新的。和Polymer将在2017年更好,当2.0版本出来。
8. React + Flux
React是前端的顶尖JavaScript技术之一。但是React只是一个图书馆,所以它不符合,比如说,Angular或Ember。为了使React更接近MVC架构,React的开发人员和主要支持者Facebook引入了一种构建应用程序架构的方法,并称之为Flux。 Flux由几个组件组成 - 一个dispatcher(控制流),存储(类似于MVC框架中的M),控制器视图(对用户触发的事件做出反应)和动作(事件对象由调度器)。这需要学习很多,但是标准的Flux结构比Ember中的MVC模型更简单。 但除了Flux,还有一些你必须理解:JSX。实际上,使用JSX很简单。您将HTML布局写入React组件,并使用插值插入值,这是在JS中计算的。您不需要使用非标准属性使您的HTML变得脏,就像使用Ember或Angular一样。 React在语法方面与Aurelia类似 - 也就是说,它接近JavaScript。 React将在2017年获得更多的更新,从主库中分离ReactDOM,并摆脱bug。学习React.js几乎是必须的。但是你是否使用React生产或者不依赖于你的喜好。
JavaScript框架和库的比较
要快速回顾一下我们讨论的内容,请查看以下比较表:
JS技术 |
概念 |
Web组件 |
数据绑定 |
呈现 |
建筑 |
类型 |
Angular 2 |
JS转换为HTML |
支持 |
单向和双向 |
服务器端 |
MVC |
前端框架 |
Aurelia |
JS转换为HTML |
支持 |
双向 |
服务器端 |
MVC |
前端框架 |
Ember |
JS转换为HTML |
支持 |
双向 |
服务器端 |
MVC |
前端框架 |
Knockout |
JS转换为HTML |
支持 |
双向 |
客户端 |
MVVM |
前端框架 |
Marionette |
HTML到JS |
支持 |
双向 |
客户端 |
MVVM |
JS库 |
Meteor |
JS转换为HTML |
支持 |
单向和双向 |
服务器端 |
全栈架构 |
全栈框架 |
Polymer |
JS转换为HTML |
支持 |
双向 |
客户端 |
在MVC中查看 |
JS库 |
React |
HTML到JS |
支持 |
单程 |
服务器端 |
在MVC中查看 |
JS库 |
要在我们的Web开发最佳JS框架列表中找到一项技术,我们建议您至少尝试两个开始 - Angular和React。 在vanilla JavaScript中编写代码总是更简单,因为你已经知道了。但即使你从Angular和React开始,请务必注意我们提到的其他顶级JavaScript框架。这是真的,你必须抓住许多新的约定,术语,方法和自定义属性来使用任何JavaScript框架或库。不过,很快,您将能够以更快的速度创建高质量的客户端,甚至服务器端应用程序。
觉得文章有用就打赏一下文章作者
支付宝扫一扫打赏
微信扫一扫打赏