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 就是由於其執行效率的問題。不過,在大部分的狀況下,執行效率並非很是關鍵,除非是很是大的網站。

相關文章
相關標籤/搜索