JavaScript,一种全部主流浏览器都支持的语言,是开发基于浏览器的 Web 应用程序的主力,几乎每一年都会受到来自众多开发人员的关注。天然地,框架和库的生态系统天然而然地围绕着 JavaScript 而努力,以简化和加强 JavaScript 应用程序的开发。javascript
这些工具提供从事件处理到代码缩减和数据渲染的功能。如下是开发基于浏览器的 Web 应用程序的 JavaScript 开发人员工具包中最必要的技术汇总。前端
Angular,以前是由Google开发的被称为AngularJS,是用于移动和桌面Web开发的单框架。为了建立类原生渐进式web应用程序,Angular提供用于汇编应用程序的数据服务的依赖注入,以及用于复合组件的HTML模板。java
Angular项目快速入门页面使得开发者能够轻松开始使用Angular。jquery
2016年9月的Angular第2版的特点是基于TypeScript(Microsoft的JavaScript类型化超集)的重写,以处理在Angular初始版本中架构上存在的性能限制。
如今,开发者都在等待Angular 5,预计到到十月二十三日发布(没有第3版或第4版)。它预期的功能包括:web
用于在浏览器中缓存应用程序,以增强构建渐进的Web应用程序的便利性。数据库
构建优化器,经过删除没必要要的代码使应用程序更小。npm
使Material Design组件与服务器端渲染兼容。数组
Angular 6,预计发布时间比Angualr 5玩晚发布五到六个月,将聚焦于与Angular 5相同的主题:易用性,更小尺寸和性能。Angular自己具备强大的生态系统,在IDE中有四个数据库和支持,如JetBrains IntelliJ Idea。浏览器
由聚焦的模块组成的Aurelia是由Blue Spire开发的用于移动、桌面和Web应用程序的客户端框架。它实现了快速渲染和“高效”的内存使用率。缓存
你能够从GitHub上下载Aurelia。
Aurelia有处理元数据、依赖注入、绑定、模板和路由的模块。Aurelia集成了Web组件,并提供与对象的双向数据绑定。多数Aurelia代码都是以纯JavaScript编写的。其余功能包括:
一个用于构建自定义元素和给元素添加属性的HTML编译器。
支持动态加载。
用于单元测试的可构建耦合代码的依赖注入容器。
提供建立新项目选项的Aurelia CLI,须要安装Node 4或更高版本、NPM 3和Git。
与Polymer库的集成,用于构建可重复使用的web组件。
在模板引擎中,用于组件继承时支持bindable的继承。
web前端/H5/javascript学习群:250777811
欢迎关注此公众号→【web前端EDU】跟大佬一块儿学前端!欢迎你们留言讨论一块儿转发
Backbone.js ,也就是 Backbone ,为重度 JavaScript 应用程序提供告终构体。它具备带有键值绑定和自定义事件的模型,它们是一个支持可枚举函数和声明性事件处理视图的 API 的集合。
你能够从 Backbone 项目网站下载开发版本和产品发布版本。
Backbone.js 中的数据是使用能够建立、校验、销毁并保存到服务器的模型表示的。这些模型经过 RESTful JSON 接口链接到应用程序。使用 Backbone.js 时,当 UI 操做提示要更改模型的属性时,该模型会触发更改事件。显示模型状态的视图会收到此更改的通知并从新渲染他们。
Ember.js 是一个强调开箱即用的高效率的框架。它具备集成的模板,被称为句柄条,旨在减小代码编写量; 在数据改变时,这些模板会自动更新。
能够在 NPM 中输入 npm install -g ember-cli@2.15 来安装 Ember.js 。
Ember.js 的功能包括:
专一于简化开发的 API 。
专一于让开发者使应用程序特例化的通用风格。
Ember.js 3.0 稳定版会在2018年1月1日发布测试版以后的2月12日发布。在 2.x 版本中不推荐使用的 API ,依然是支持的,这些 API 将在 Ember.js 3.x 中被清除。 一个 add-on 应将支持在 3.x 代码行中的 Ember.js 2x API 。
与其余知名的 JavaScript 框架不一样,Sencha 的 Ext JS 并非开源的; 它是一种商业产品。它用于构建面向企业的数据密集型跨平台 Web 应用程序,须要多种形式的因素。
The Ext JS 软件能够从 Sencha 的 Ext JS 页面下载到。
Ext JS 框架提供了许多组件,例如数据网格和日历。Ext JS 可与 Sencha Architect 等工具一块儿使用,用于拖放 HTML5 应用程序开发,以及 Sencha Themer ,用于应用程序的样式设置。
Ext JS 的构建器正在考虑如何使用 Ext JS 的架构执行长期的任务。Sencha 计划在今年年末或明年初发布 Ext JS 7 ,可是因为 Sencha 收购了 Idera ,这些计划如今被搁置了。关于提供符合最新的 ECMAScript 标准和使用 NPM 包管理器和 Webpack 模块绑定器的可行性讨论已经举行过了。
JavaScript 的 jQuery 库的 API 提供了操做 HTML 文档、事件处理和动画等功能。jQuery 库由 JS 基金会管理,于 2006 年 8 月首次发布。
jQuery 能够从jQuery 项目网站下载。
jQuery 并非用来构建应用程序的框架,但它提供基本的 API,很容易在浏览器中操做 DOM。jQuery 也能够和应用程序构建工具一块儿使用,好比 Angular 和 React/Redux。
jQuery 团队如今差很少每一年发布两个版本,从如今到 2018 年中只会发布一些小版本。除此以外,jQuery 4.0 和后续版本要求使用“下一代”JavaScript彻底重写,这须要对构建系统进行更新。在 jQuery 4 和后续版本中还有以下计划:
重写 jQuery 的速度框架,跟踪性能回归
新设计的事件模型,会丢弃特殊事件钩子,避免使用 jquery.Event 类的包装
支付新的原生选项,好比被动事件监听器
Meteor(又名 Meteor.js )是一个 JavaScript 框架,可使用较少的代码更快地开发 Web、移动和桌面应用程序。开发人员能够在全部环境中使用 JavaScript ,包括在应用服务器、Web 浏览器和移动设备上。
Meteor 软件能够从 Meteor 项目网站下载。
Meteor 平台,也被称为 Meteor.js ,包括用于构建已链接客户端的响应式应用程序的技术,构建工具以及一系列来自 Node.js 和 JavaScript 社区的软件包。使用 Meteor 后,服务器会经过设备发送数据而不是HTML,而后在客户端渲染它。
Meteor 1.6 是下一个发行版本号,其重点是升级到 Node.js 8,这将让 Meteor 更好地利用服务器上的 ECMAScript 功能,从而提升构建性能。
Google的Polymer JavaScript库旨在使开发人员可以充分利用Web组件,为可重用的自定义元素提供与浏览器内置元素的交互提供可能。
你能够从Bower包管理器上安装Polymer。
5月份发布的Polymer 2.0版经过去掉DOM操做时使用的Polymer.dom改善了互操做性。这使得使用其余库和框架时再使用Polymer组件更容易。
Polymer 2.0中的其余功能包括:
数据系统的改进,以提高数据经过和元素之间的调试和传递。
ECMASript 2015类和标准的自定义元素。Polymer第1版中的方法用于定义元素,而不是使用Plymer的工厂方法。可是工厂方法仍然经过兼容性层来支持。
更简单的数组处理。
即将发布是Polymer 3.0,它目前是预览版本,功能包括Bower和HTML import、NPM和ECMAScript 15模块。Bower和HTML imports功能适用于基于HTML基于导入的工做流程。可是,他们把Polymer置于网络开发的主流以外,而且令人们难以使用其余框架或构建工具。
Facebook用来构建用户界面的 React 库 ,提供基于组件的声明性的视图(view),使用JavaScript来编写组件逻辑。React库,也就是React.js,并不支持模型(model)和控制器(controller),可是能够经过其余一些相关的项目完善这些功能。
React 能够从 React 项目网站 下载。
你可使用React的 JSX 语法 来描述用户界面。JSX容许在一个组件中混合使用JavaScript和HTML。在构建的过程当中会转换成纯JavaScript。
为了提升性能,React 在最近的发行版React 16 中对架构进行了重写,称为Fiber。此次更新的主要特色是着重于为了处理大型组件的异步渲染。可是React自己还并不支持异步渲染,这将会在React 16.x的版本线中实现。
React 16的其余改进包括:
提供组件堆栈追踪,使得调试更加简单。
能够在组件的渲染方法(render)中直接返回字符串或者数组。
新的更快的,基于流的服务器端渲染。
更接近原生应用的性能。
在一些组织如Apache软件基金会反对其许可条款后,React 从新修改了其基于BSD+MIT Patents的新的许可证。Apache 担心基于BSD + Patents 的许可以使得软件对于下游项目来讲,再也不是一个“万能捐赠者” 。
Vue.js是React的竞争对手之一,声称更快的渲染速度。其核心库聚焦于视图层,而且框架主要是为了增量实现。
Vue.js软件能够从Vue.js项目网站下载。
声明式渲染是Vue.js中的关键,使用模板语法将数据渲染到DOM中。Vue.js组件系统是一种抽象,支持由可自包含开发和可重用的模块组成的大型应用程序。Vue.js中的组件本质上是一个具备预约义选项的Vue实例。
Vue.js 2.5将于2017年10月到来,具备更好集成了TypeScript功能。稍后版本的Vue.js的计划包括:
使TypeScript用户更容易在Vue.js中启动新项目
使用代理重写框架的响应式系统
支持WebAssembly可移植代码格式
吸取Web组件更多功能的能力
web前端/H5/javascript学习群:250777811
欢迎关注此公众号→【web前端EDU】跟大佬一块儿学前端!欢迎你们留言讨论一块儿转发
以为本文对你有帮助?请分享给更多人