AngularJS - 下一个大框架

AngularJS - 下一个大框架

AngularJS

AngularJS是web应用的下一个巨头。

AngularJS如果为创建web应用而设计,那它就是HTML的套路了。具有数据绑定, MVW, MVVM, MVC, 依赖注入的声明式模板和出色的可测试性都是用纯客户端 JavaScript来实现的! AngularJS 是一个创建富客户端应用的JavaScript MVC框架,它组织良好,经过严格测试,多功能,强大并且十分灵活。你仍然需要具有服务端后台,但大多数的用户交互逻辑将优雅地放到客户端上处理。

AngularJS是一个开源的web应用框架,由Google和社区进行维护,它可以创建单页的应用程序,一个页面的应用仅仅需要HTML,CSS和JavaScript在客户端。它的目标是增强页面的模型-视图-控制(MVC)的功能,为简化开发和测试。

它是一个建立在厚客户端的清爽的新模块web应用程序。一个健壮的框架建立在商业应用网络上。它鼓励最佳实践,开发模型和开发高质量的可维护的模块化应用程序。它的团队是世界一流的,社区是极其出色的,它结合最棒的功能来创建web应用。

AngularJS 允许你编写客户端的web应用程序,如果你有一个智能浏览器。它允许你使用好用的旧式的HTML作为你的模板语言,允许你扩展HTML语法来清晰、简洁的表达你的应用组件。它通过双向数据绑定使你的UI(视图层)与你的JavaScript对象(模型层)的数据自动同步。帮助你更好的构建你的应用和更方便的测试,AngularJs告诉浏览器如何依赖注入和控制反转。它帮助改良了允许异步回调和延迟、使客户端导航和深层链接使用哈希bang格式地址和HTML5 pushStat与服务端通信更容易。

Angular 提供了:

  • 结构模型的引入(MVC,SPA等)

  • 增强HTML支持新特性。

  • 避免直接DOM操作来避免很难调试不可追踪的代码。

  • 包含低耦合和高可复用性

  • 应用程序内部规则测试

  • 视图模板更接近服务器端模板

AngularJS 是基于声明式编程模式 是用户可以基于业务逻辑进行开发. 该框架基于HTML的内容填充并做了双向数据绑定从而完成了自动数据同步机制. 最后, AngularJS 强化的DOM操作增强了可测试性.

希望你喜欢,并分享我的工作~带你走近AngularJS系列

  1. 带你走近AngularJS - 基本功能介绍 http://www.linuxidc.com/Linux/2014-05/102140.htm
  2. 带你走近AngularJS - 体验指令实例 http://www.linuxidc.com/Linux/2014-05/102141.htm
  3. 带你走近AngularJS - 创建自定义指令 http://www.linuxidc.com/Linux/2014-05/102142.htm

设计初衷:

  • 将DOM操作从应用中解耦. 增强了可测试性。

  • 应用测试性与开发代码同样重要. 测试的复杂程度与代码的设计结构强相关.

  • 客户端与服务端解耦. 实现了并发处理机制增强了代码复用性.

  • 在开发全过程中作出指引: 从UI到业务逻辑最终到测试环节.

架构

AngularJS - 下一个大框架

AngularJS的关键特性

可测试性,依赖注入,逻辑/视图层的分离,还有设计者和开发者之间的协调合作是一个开发者对一个框架最期待的几样东西。Angular绝对满足上述要求。在JS领域,Angular能适配这写令人耳目一新的要求看起来是多么惊人。

AngularJS - 下一个大框架

双向数据绑定:

数据绑定可能是AngularJS里最酷,最实用的功能。 它将节省你大量的样板代码编写。 一个典型的Web应用程序可以包含多达80%的代码基础,如遍历,操作,并听取了监听DOM。 数据绑定使得不用编写这些代码,这样你就可以专注于你的应用程序。

考虑下你的应用程序的模型为单源信任的。 你的模型就是你去读取或更新应用程序中的任何东西的地方。这种投射是无缝的,不需费你一兵一卒。AngularJS双向数据绑定会处理DOM和模型之间的同步,反之亦然。

AngularJS - 下一个大框架

 

模板

在AngularJS, 模板就是原生的HTML. 做了基于视图的增强. 这样做最大的好处在于拉近了开发与设计人员的工作流. 设计人员操作HTML完成设计,开发直接在HTML上作相应的功能开发.

<div ng-controller="AlbumCtrl">
  <ul>
    <li ng-repeat="image in images">
      <img ng-src="{{image.thumbnail}}" alt="{{image.description}}">
    </li>
  </ul>
</div>

MVC

AngularJS引入了软件设计的MVC模式.这对于使用者来说仁者见仁智者见智. AngularJS并不是完全的MVC而是 MVVM (Model-View-ViewModel).

模型

model就是数据模型 就是一些JavaScript 对象. 没必要从父类继承,代理包装亦或是使用getter/setter来使用. 使用vanilla JavaScript 十分方便便捷.

  • 视图

视图就是提供特殊数据或方法来支持特定场景的对象.

视图对象就是 $scope. $scope就是个简单的js对象,提供一些简单的API监控其状态.

  • 业务控制

控制器起到设置 $scope对象的初始状态及后续的动作关联。 

  • 页面

在.AngularJS处理完相关的业务逻辑进行HTML模式的展示。

这样就奠定了应用的架构.  $scope对象拥有数据的引用关系, 控制器定义行为, 视图处理页面展示布局以及相应的处理跳转.

AngularJS - 下一个大框架

依赖注入

AngularJS 提供了依赖注入的子系统帮助开发人员降低开发复杂度,提高测试效率.依赖注入将业务代码与配置实现解耦,提高了代码的可测性. 

有了DI无需每次都创建指定的对象依赖关系,而后面配置. 这样就能按需分配而无需自己制定或是查找. 就像要说一句"Hey I need X', DI就会帮你创建并发送给你.

采用依赖注入后能体验到的好处主要包括:

  • 代码更易于维护。

  • API更为简练和抽象。

  • 代码更易于测试。

  • 代码更加模块化、可复用性更强。

AngularJS - 下一个大框架

指令

指令可以被用来创建自定义的HTML标签,这些标签可以用作新的自定义的控件。它们也可以用来"渲染"有一定行为的元素,也可以以一些有趣的方式来操作DOM属性。一个指令就是一个能引入新语法的东西。把分离的组件组合成一个组件,这种创建应用的方式将使得添加、修改和删除页面功能变得异常简单。指令是AngularJS的一个非常强大且独有的特性。

相关推荐