angularJS简介及其特色—— 五大特性,加快 Web 应用开发

AngularJS 是谷歌的一个 JavaScript 框架,旨在简化前端应用程序的开发。html

一. 关于和jquery的比较

首先angular是一个mvc框架,它与jquery不一样之处在于,前者致力于mvc代码解耦,采用model,controller以及view方式去组织代码,然后者提供给你了不少APi函数,你能够不用写不少原生js去实现比较复杂的效果,好比说动画,$.animate,这样的效果若是须要原生js来写的话,代码量将会比较庞大;前端

其次,jQuery没有定义你的代码如何组织,你能够将它放在一个单独的js文件中进行引用,也能够直接写在页面中采用script标签进行包裹,甚至能够直接之内联的方式写在html标签中,可是angularjs会将一个HTML页面分红若干个模块,每一个模块均可以本身的scope,service以及directive,各个模块之间也能够进行通讯,可是总体上结构是比较清晰的,就是说其代码组织方式是模块化的。jquery

最后,jQuery的思想是先设计好页面,而后在已有页面的基础上进行dom操做后展现页面,可是angular的view可能仅仅是一个框架,对view的dom操做或者时间监听都是在directive中实现的,并且通常状况下不多本身直接去写Dom操做代码,只要你监听model。model发生变化后view也会发生变化。git

二. 关于适用场合

jQuery应该适用于大多数web开发,移动端也有(jQuerymobile),angularjs有人说更适合作SPA(我我的认为在手机上的SPA可能会引起性能上的问题,由于它的脏检查机制会影响性能),在web端,一些CRUD的应用或者管理类软件仍是可使用的(固然这里的理解可能不必定准确,会随着深刻学习更多去了解和使用)。angularjs

三. 关于UI的结合

开发任何产品都须要用到前端UI,目前不少UI是基于jQuery的,这意味着你若是要用angularjs和这些Ui组件的话,须要用angularjs的directive去重写些组件,这一过程是比较麻烦的,所幸的是,angular给咱们提供了一些UI组件可使用(web端主要是结合bootstrap前端组件),http://angular-ui.github.io/,而在移动端主要是结合ionic框架http://ionicframework.com/,可是随着angular的发展,不少HTML5的前端框架也慢慢集成了angularjs版本可供使用。github

四. angularJS特色

#1 良好的应用程序结构——代码模块化

  一般状况下,咱们编写 JavaScript 没有明确的结构。虽然在编写小应用程序的时候没有问题,但这显然是不适合于大规模的应用程序。使用 AngularJS,您能够经过MVC(模型 - 视图 - 控制器)或MVVM (模型 - 视图 - 视图模型)模式来组织源代码。 AngularJS 是一个 MVW 框架,其中W表明能够用于任何项目。你能够组织你的代码模块,它可显著提升应用程序的可测试性和可维护性。每一个模块的代码独立拥有本身的做用域,model,controller等。web

#2 双向数据绑定

  数据绑定确定是 AngularJS 最佳功能之一。你能够声明绑定的模型到 HTML 元素。当模型Model发生变化时,视图View会自动更新,反之亦然。这能够减小大量的传统样板代码,保持模型和视图同步。bootstrap

#3 指令

  AngularJS 指令让你使用 HTML 新语法快速的构建应用程序。您能够建立可重用的自定义组件与指令的API。强大的directive能够将不少功能封装成HTML的tag,属性或者注释等,这大大美化了HTML的结构,加强了可阅读性;例如,若是你想自定义日期选择器小部件,你能够建立一个<data-picker/ >组件。若是你想要一个奇特的文件上传与进度指示器能够继续建立一个<file-upload/ >组件。很酷,不是吗?后端

#4 HTML 模板

  AngularJS 使用 HTML 模板,这使事情变得简单,并容许设计人员和开发人员同时工做。设计人员能够按照一般的方式建立用户界面,而开发人员可使用声明性绑定语法很容易配合不一样的UI组件的数据模型。设计模式

#5 可嵌入、注入和测试

  关于 AngularJS 的最好的事情是,它是一个很好的团队成员。它历来没有要求全面承诺。AngularJS 官方网站说,你能够根据你须要使用尽量多或尽量少的在项目中使用 AngularJS。若是你只须要双向数据绑定,您能够引入 Angular,只是使用此功能。

  AngularJS 支持依赖注入的开箱即用。若是你须要的东西,你只要调用 Angular 来注入。将这种后端语言的设计模式赋予前端代码,这意味着前端的代码能够提升重用性和灵活性,将来的模式可能将大量操做放在客户端,服务端只提供数据来源和其余客户端没法完成的操做;就这么简单。这巨大的提升可测试性,由于你能够很容易地在测试的模拟组件。

  AngularJS 在建立时候始终考虑着可测试性(测试驱动开发)。这些模块和依赖注入系统,使得单元测试和端对端测试更容易。此外, AngularJS 提供了一个称为量角器工具,这使得终端到终端的测试变得垂手可得。因此,你开发的代码始终是可测试性和可维护性。

另外推荐参考一篇知乎:http://www.zhihu.com/question/22284218?rf=25116320

  这还不是所有! AngularJS 还提供了更多的实用功能,如路由,过滤器,和动画等等。不过,以上几点已足以让我爱上它。

相关文章
相关标签/搜索