标签 AngularJS 下的文章

值得好好学习的 6 个 JavaScript 框架

常言道,条条大路通罗马,可是那一条适合我呢? 由于用于构建前端页面等现代技术的出现,JavaScript 在 Web 开发社区早已是如雷贯耳。通过在网页上编写几个函数并提供执行逻辑,可以很好的支持 HTML (主要是用于页面的 表现 或者 布局)。如果没有 JavaScript,那页面将没有任何 交互特性 可言。

现在的框架和库已经从蛮荒时代崛起了,很多老旧的技术纷纷开始将功能分离成模块。现在不再需要在整个核心语言中支持所有特性了,开发者允许所有用户创建库和框架来增强核心语言的功能。这样,语言的灵活性获得了显著提高。

如果在已经在使用 JavaScript (以及 JQuery) 来支持 HTML,那么你肯定知道开发和维护一个大型应用需要付出多大的努力以及编写多么复杂的代码,而 JavaScript 框架可以帮助你快速的构建交互式 Web 应用 (包含单页面应用或者多页面应用)。

当一个新手开发者想要学习 JavaScript 时,他常常会被各种 JavaScript 框架所吸引,也幸亏有为数众多的社区,任何开发者都可以轻易地通过在线教程或者其他资源来学习。

但是,唉!多数的程序员都很难决定学习和使用哪一个框架。因此在本文中,我将为大家推荐 6 个值得好好学习的 JavaScript 框架。让我们开始吧。

1、AngularJS

Angular

(注:这是我个人最喜欢的框架)

无论你是何时听说的 JavaScript,很可能你早就听过 AngularJS,因为这是在 JavaScript 社区中最为广泛使用的框架了。它发布于 2009 年,由 Google 开发 (这够有说服力让你使用了吧) ,它是一个开源项目,这意味着你可以阅读、编辑和修改其源代码以便更加符合自身的需求,并且不用向其开发者支付一分钱 (这不是很酷吗?)。

如果说你觉得通过纯粹的 JavaScript 代码编写一个复杂的 Web 应用比较困难的话,那么你肯定会兴奋的跳起来,因为它将显著地减轻你的编码负担。它符合支持双向数据绑定的 MVC ( 模型-视图-控制 Model–view–controller ) 设计典范。假如你不熟悉 MVC,你只需要知道它代表着无论何时探测到某些变化,它将自动更新前端 (比如,用户界面端) 和后端 (代码或者服务器端) 数据。

MVC 可以大大减少构建复杂应用程序所需的时间和精力,所以你只需要集中精力于一处即可 (DOM 编程接口会自动同步更新视图和模型)。由于 视图组件模型组件 是分离的,你可以很容易的创建一个可复用的组件,使得用户界面的效果非常好看。

如果因为某些原因,你已经使用了 TypeScript (一种与 JavaScript 非常相似的语言),那么你可以很容易就上手 AngularJS,因为这两者的语法高度相似。与 TypeScript 相似这一特点在一定程度上提升了 AngularJS 的受欢迎程度。

目前,Angular 2.0 已经发布,并且提升了移动端的性能,这也足以向一个新的开发者证明,该框架的开发活跃度够高并且定期更新。

AngularJS 有着大量的用户,包括 (但不限于) Udemy、Forbes、GoDaddy、Ford、NBA 和 Oscars。

对于那些想要一个高效的 MVC 框架,用来开发面面俱到、包含健壮且现代化的基础架构的单页应用的用户来说,我极力的推荐这个框架。这是为无经验 JavaScript 开发者设计的首选框架。

2、React

React

与 AngularJS 相似,React 也是一个 MVC ( 模型-视图-控制 Model–view–controller ) 类型的框架,但不同的是,它完全针对于 视图组件 (因为它是为 UI 特别定制的) ,并且可与任何架构进行无缝衔接。这意味着你可以马上将它运用到你的网站中去。

它从核心功能中抽象出 DOM 编程接口 (并且因此使用了虚拟 DOM),所以你可以快速渲染 UI,这使得你能够通过 node.js 将它作为一个客户端框架来使用。它是由 Facebook 开发的开源项目,还有其它的开发者为它贡献了代码。

假如说你见到过并喜欢 Facebook 和 Instagram 的界面,那么你将会爱上 React。通过 React,你可以给你的应用的每个状态设计一个简单的视图,当数据改变的时候,视图也自动随之改变。只要你想的话,可以创建各种的复杂 UI,也可以在任何应用中复用它。在服务器端,React 同样支持通过 node.js 来进行渲染。对于其他的接口,React 也一样表现得足够灵活。

除 Facebook 和 Instagram 外,还有好多公司也在使用 React,包括 Whatsapp、BBC、PayPal、Netflix 和 Dropbox 等。

如果你只需要一个前端开发框架来构建一个非常复杂且界面极好的强大视图层,那我极力向你推荐这个框架,但你需要有足够的经验来处理各种类型的 JavaScript 代码,而且你再也不需要其他的组件了 (因为你可以自己集成它们)。

3、Ember

Ember

这个 JavaScript 框架在 2011 年正式发布,是由 Yehuda Katz 开发的开源项目。它有一个庞大且活跃的在线社区,所以在有任何问题时,你都可以在社区中提问。该框架吸收融合了非常多的通用的 JavaScript 风格和经验,以便确保开发者能最快地做到开箱即用。

它使用了 MVVM ( 模型-视图-视图模型 Model–view–viewmodel ) 的设计模式,这使得它与 MVC 有些不一样,因为它由一个 连接器 (binder) 帮助视图和数据连接器进行通信。

对于 DOM 编程接口的快速服务端渲染,它借助了 Fastboot.js,这能够让那些复杂 UI 的性能得到极大提高。

它的现代化路由模式和模型引擎还支持 RESTful API,这确保你可以使用到这种最新的技术。它支持 句柄集成模板 Handlebars integrated template ,用来自动更新数据。

早在 2015 年间,它的风头曾一度盖过 AngularJS 和 React,被称为最好的 JavaScript 框架,对于它在 JavaScript 社区中的可用性和吸引力,这样的说服力该是足够了的。

对于不追求高灵活性和大型架构的用户,并且仅仅只是为了赶赴工期、完成任务的话,我个人非常推荐这个 JavaScript 框架。

4、Adonis

Adonis

如果你曾使用过 LaravelNodeJS,那么你在使用这一个框架之时会觉得相当顺手,因为它是集合了这两个平台的优点而形成的一个框架,对于任何种类的现代应用来说,它都显得非常专业、圆润和精致。

它使用了 NodeJS,所以是一个很好的后端框架,同时还附带有一些前端特性 (与前面提到那些更多地注重前端的框架不同),所以想要进入后端开发的新手开发者会发觉这个框架相当迷人。

相比于 NoSQL,很多的开发者都比较喜欢使用 SQL 数据库 (因为他们需要增强和数据以及其它特性的交互性),这一现象在这个框架中得到了很好的体现,这使得它更接近标准,开发者也更容易使用。

如果你混迹于各类 PHP 社区,那你一定很熟悉 服务提供者 Service Providers ,也由于 Adonis 其中包含相应的 PHP 风格,所以在使用它的时候,你会觉得似曾相识。

在它所有的特性中,最好的便是那个极为强大的路由引擎,支持使用函数来组织和管理应用的所有状态、支持错误处理机制、支持通过 SQL ORM 来进行数据库查询、支持生成器、支持 箭头函数 arrow functions 、支持代理等等。

如果喜欢使用无状态 REST API 来构建服务器端应用,我比较推荐它,你会爱上这个框架的。

5、Vue.js

Vue.js

这是一个开源的 JavaScript 框架,发布于 2014 年,它有个极为简单的 API,用来为 现代 Web 界面 Modern Web Interface 开发 交互式组件 Reactive components 。其设计着重于简单易用。与 Ember 相似,它使用的是 MVVM ( 模型-视图-视图模型 Model–view–viewmodel ) 设计范例,这样简化了设计。

这个框架最有吸引力的一点是,你可以根据自身需求来选择使用的模块。比如,你需要编写简单的 HTML 代码,抓取 JSON,然后创建一个 Vue 实例来完成可以复用的小特效。

与之前的那些 JavaScript 框架相似,它使用双路数据绑定来更新模型和视图,同时也使用连接器来完成视图和数据连接器的通信。这是一个还未完全成熟的框架,因为它全部的关注点都在视图层,所以你需要自己处理其它组件。

如果你熟悉 AngularJS,那你会感觉很顺手,因为它大量嵌入了 AngularJS 的架构,如果你懂得 JavaScript 的基础用法,那你的许多项目都可以轻易地迁移到该框架之下。

假如你只想把任务完成,或者想提升你自身的 JavaScript 编程经验,又或者你需要学习不同的 JavAScript 框架的本质,我极力推荐这个。

6、Backbone.js

Backbone.JS

这个框架可以很容易的集成到任何第三方的模板引擎中,默认使用的是 Underscore 模板引擎,而且该框架仅有一个依赖项 (JQuery),因此它以轻量而闻名。它支持带有 RESTful JSON 接口的 MVC ( 模型-视图-控制 Model–view–controller ) (可以自动更新前端和后端) 设计范例。

假如你曾经使用过著名的社交新闻网络服务 reddit,那么你肯定听说过它在几个单页面应用中使用了 Backbone.jsBackbone.js 的原作者为之建立了与 CoffeScript 旗鼓相当的 Underscore 模板引擎,所以你可以放心,开发者知道该做什么。

该框架在一个软件包中提供了 键值对 key-value 模型、视图以及几个打包的模块,所以你不需要额外下载其他的外部包,这样可以节省不少时间。框架的源码可以在 GitHub 进行查看,你可以根据需求进行深度定制。

如果你在寻找一个入门级框架来快速构建一个单页面应用,那么这个框架非常适合你。

总而言之

至此,我已经在本文着重说明了 6 个值得好好学习的 JavaScript 框架,希望你读完本文后能够决定使用哪个框架来完成自己的任务。

如果说对于选择框架,你还是不知所措,请记住,这个世界是实践出真知而非教条主义的。最好就是从列表中挑选一个来使用,看看最后是否满足你的需求和兴趣,如果还是不行,接着试试另一个。你也尽管放心好了,列表中的框架肯定是足够了的。


译者简介:

GHLandy —— 生活中所有欢乐与苦闷都应藏在心中,有些事儿注定无人知晓,自己也无从说起。


via: http://www.discoversdk.com/blog/6-best-javascript-frameworks-to-learn-in-2016

作者:Danyal Zia 译者:GHLandy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

之前我们还哀叹,谷歌的 AngularJS 2.0 的稳定版看起来年底也未必能见到,然而,在 9 月 14 日谷歌总部召开的一个会议上,突然就宣布最终的稳定版发布了——而这距离前一个版本 RC7 的发布才过去了一天。

AngularJS 2.0 的开发始于 2014 年秋天,最初计划是一年后发布正式版本,然而随着项目的日渐庞大,就日复一日的拖延下来了,不过,还好,终于在两年后正式发布了。

这个最终版,按照其官方的说法是:

“最终版”意味着什么?意味着它的稳定性已经得到了大范围用例的验证;意味着它已经针对产品化、文件尺寸和性能进行过优化;意味着借助预编译技术和内置的延迟加载机制,我们可以确信你能发布出最快、最小的应用,并且横跨浏览器、桌面和移动平台;意味着为开发人员准备的 Angular CLI 和风格指南得到了大幅强化。

为什么这么期待 AngularJS 2 呢?这个框架是一个革命性的 Web 开发框架,它在 2010 年 10 月的时候,采用微软的 TypeScript 重写后,更是如虎添翼,不但性能提升、功能增强,资源占用也更少了。不过,有一个不好的消息是, AngularJS 2.0 和 1.x 是不兼容的,因此如果是用 1.x 编写的应用,可能面临着大量的重写和移植工作。

作为一个持续了两年才开发完的前端框架,它的功能特性和亮点显然不是我们一篇短文就可以道尽的,因此这里只是提到一些最引人注目的特性:

  • 提前(AOT)编译
  • 内置按需加载
  • 新的 Angular 命令行接口
  • Angular 样式指南
  • 支持 ES5 和 ES6
  • 集成 React Native 和 NativeScript
  • ……

好了,渴望尝试的 AngularJS 用户们,可以从其官网 https://angular.io/或[GitHub](https://github.com/angular/angular)上下载,这里还有一个[五分钟入门教程](https://angular.io/docs/ts/latest/quickstart.html)。(显然,你知道的,这些都是墙外的。)另外,也有一个官方认可的中文站可以去访问:https://angular.cn/

微软终于发布了 TypeScript 2.0 的第一个 RC 版本。TypeScript 是一个简化版的 JavaScript 语言,被大量用于各种 Web 项目,包括下面提到的著名的 AngularJS 框架。

TypeScript 2.0 中主要的特性是“ 标签结合 tagged unions ”,这个特性可以将两个不同的数据结构联合到一起。你可以把它想象成将一个圆圈和一个方块放一起,这个隐喻来自微软解释标签结合的博文中。

支持标签结合的语言包括 C++、 Scala、 F#、Rust 和 Swift 等等。支持这种特性的原因是,标签结合可以改进类型安全,并减少经常困扰开发者的类型错误。

而另外一方面,Google 也有一些动作……

Google 已经谈论 AngularJS 2.0 很久了。很多人都期望 Google 能在去年底发布 2.0 的稳定版,不过我们听说,就算是到了今年年底也不会见到稳定版。

不过,也快了!Google 今天宣布发布了 Angular 2.0 RC6,支持国际化(I18N)、更多的表单功能,并由于对 Ahead of Time (AoT) 的兼容和支持 ES6 2015 模块而改进了性能。

同时 Google 也宣布发布了 Angular Material 1.1,这是一个 AngularJS 的 UI 组件包。Angular Material 2.x 当前还处于 alpha 阶段,看起来会在 AngularJS 2.0 发布之后才会面世。当前,Angular Material 2.x 已经从 6 个组件增加到了 18 个组件了。

今日关注

Canonical 宣布 Ubuntu 16.04 LTS (Xenial Xerus) 的第一个维护版本 16.04.1 发布,包括 Kubuntu 、Xubuntu、 Lubuntu、Mythbuntu、Ubuntu Studio、Ubuntu MATE、Ubuntu GNOME、Ubuntu Kylin 等分支也同样更新其安装镜像。如果你还在使用旧的 Ubuntu 14.04.4 等版本,你会收到一个升级提示——这是最后的安全地升级到 16.04 的机会了。

图文摘要

VirtualBox 5.1.2 发布,对 RedHat 企业版 Linux 5 提供了更好支持。

在出去玩了一周之后,Linus 正式宣布 Linux Kernel 4.7 的发布。这一版本最大的新功能是提供了对 AMD 新发布的 Radeon RX 480 GPU 的支持。

经过漫长时间的等待,Mozilla Thunderbird 45 终于登陆 Ubuntu 了,你现在可以从 Ubuntu 官方仓库中下载安装了。

Google 本周以前都是用 TypeScript 来编写其著名的 AngularJS JavaScript 框架,不过从现在开始,它创建了一个使用 Dart 语言开发的 AngularJS 分支 AngularDart,用于内部的 AdWords 等。这种分拆对于 AngularJS 和 AngularDart 来说应该都是个好消息。