AngularJS 使用感觉

1、DOM 和 jQuery 编程

你们都知道,前端开发,离不开三个东西:前端

  • HTML
  • JavaScript
  • CSS

这三样东西分别完成了前端页面的结构,行为以及样式三个要素。所谓的前端开发,从技术的角度去理解,无非是对结构,行为和样式的 CRUD。而若是咱们不使用任何 API,纯粹使用 DOM 编程,本质上就是在改变网页的结构,行为及样式。虽然咱们后来有了 jQuery,咱们作前端开发的本质并无发生变化,依旧是和 DOM 时代是同样的,不一样的是,jQuery 为咱们提供了很是方便的 API,能够很是方便的操做 DOM。程序员

DOM 和 jQuery 在本质上对前端开发的抽象角度是同样的,他们都是一样的工具,只不过 jQuery 比 DOM 更加锋利。编程

2、AngularJS -- 不一样的角度看世界

程序员的世界里面充满了宗教般的狂热,使用一种语言的鄙视使用另外一种语言的,使用一种工具的看不起使用另外一种工具的。后端

可是全部的这些工具,语言,说白了,其实就是在用不一样的角度去抽象这个世界罢了。世界本质上是很是复杂的,不一样的抽象在不一样的场景下,描述这个世界会有着不一样的效率。而 AngularJS 之因此在编程的效率上很是高,就是由于它和 DOM 以及 jQuery 在描述前端开发这件事情上,有着彻底不一样的抽象。前端框架

AngularJS 是一个前端的 MVC 框架。我以前也用 jQuery 写过一些前端代码,其实干的大部分的事情,就是点击网页的一个按钮,而后触发一系列的事情,好比加载后台数据,从新装配出一个 HTML,替换到原来的 HTML,给新生成的 HTML 里面的一些元素绑定事件等等的操做。很是容易出错,并且很是耗时。AngularJS 的高效之处就在于它把模型和视图绑定在一块儿,实现联动,改变模型,DOM 就能够跟着进行改变,甚至绑定 DOM 的事件也能够直接跟着进行改变。这一个理念,大大减小了前端开发的工做量。框架

3、AngularJS 和 JSP

写过 Java Web 开发的同窗在写 AngularJS 的时候,可能会以为 AngularJS 的在页面上的那些 Directive 和咱们在各个模板框架,好比 Velocity 里面看到的都很是类似。是的,由于二者都是 MVC 的 View 的那一部分。有人可能会问既然有了 JSP,Velocity 之类的模板语言,若是我用 Java 作后端,那么 AngularJS 做为一个前端 MVC 框架,其存在的意义是什么?工具

必须认可,大部分的场景下,AngularJS 可以作到的事情,JSP,Velocity 等模板语言都是能够作到的。可是,Velocity 之类的仅仅是一个模板框架,是 MVC 里面的 View 的这一层,而 AngularJS 并不只仅包含写在页面上的各类 Directive,还包含写在各个 $scope 中的各类 Model,以及一个 App 下的各个 Controller,换句话说,AngularJS 是一个完整的 MVC 框架。网站

固然,若是把 Model 和 Controller 都换成 Java 里面的,也是能够的。不过 AngularJS 做为一个前端框架的好处就在于,我甚至能够把一块区域的显示仍是不显示定义成一个 Model,而后只要改变这个 Model,我就能够变换这个区域的显示与否,而这用 JSP 之类的模板框架的话,会直接把前端的一些非业务核心相关的显示逻辑挪到了后台,这显然是很是不合适的。code

4、效率

其实,在前面,我一直强调的是 AngularJS 的开发效率的,在大部分的状况下 AngularJS 的开发效率都很是高效,可是不排除在某些比较简单的场景下, 直接使用 jQuery 会来得更加高效。事件

除了开发效率,还有框架自己的执行效率的问题。显然,AngularJS 的执行效率比不上 jQuery,我也问过一些前端的开发,他们不直接在一些大的网站上采用 AngularJS 就是由于其执行效率的问题。不过,在大部分的状况下,执行效率并非很是关键,除非是很是大的网站。

相关文章
相关标签/搜索