2017年8个最佳JavaScript框架

它感觉像每个月我们看到另一些关于最好的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框架或库。不过,很快,您将能够以更快的速度创建高质量的客户端,甚至服务器端应用程序。
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏