網頁

搜尋此網誌

2014年10月6日 星期一

AngularJS

AngularJS 是一個用於動態網頁應用程式 (dynamic web apps) 的結構框架 (structural framework),AngularJS 的特點在於強化 HTML 本身的功能,讓我們利用 HTML 的語法就能建立一個動態的網頁應用程式。之所以稱為「Angular」是源於 HTML 的「角括號的尖角」,AngularJS 有 HTML 延伸的意涵在裡面。換句話說,如果想要學習 AngularJS 這個框架,必須對於 HTML 有基本的認識。

HTML 是一種專門描述靜態文件的宣告式語言 (declarative language),HTML告訴瀏覽器該做什麼,但沒辦法說明該如何執行功能,本質上不能使用 HTML 建立動態網頁應用程式。意思是說,靜態文件與動態網頁應用程式之間存在著「阻抗不匹配 (impedance mismatch)」的問題。

有兩種方式解決阻抗不匹配的問題:
  • 程式庫 (library)
    程式庫包含很多開發應用程式需要的函式,呼叫這些函式實現我們需要的功能,例如 jQuery 就是其中的一種。
  • 框架 (framework)
    針對某種應用情境設計的程式架構,我們需要在架構中填入程式碼以實現功能,例如 durandal, ember 等。
然而 AngularJS 選擇另一種不同的解決方法,AngularJS 增強 HTML 的語法,使用 JavaScript 開發 HTML 編譯器,讓瀏覽器能夠解析這些新的語法,AngularJS 稱為指令 (directive)

AngularJS 所採取的是宣告式語言這一條路,因此在 AngularJS 的學習上,使用指令會比撰寫 JavaScript 還要來的重要,大部分都是在編輯 HTML 檔案 (也就是使用 directive)。這也和其他用戶端的框架不太一樣,像是 ember, Ext JS 等,因為這類框架採取的是命令式語言 (imperative language) 這一條路 ,開發上主要是撰寫 JavaScript。

前面提到框架是針對某種應用情境設計的程式架構,AngularJS 的設計主要是針對資料類型的開發,也就是 CRUD (create, read, update and delete) 的應用程式。遊戲與 GUI 操作的應用程式就不太適合使用 AngularJS 了, CRUD 應用類型是 AngularJS 的強項

目前 (2014/10) 沒有關於 AngularJS 的中文書籍,對於國內推廣 AngularJS 會有些困難。學習上大多是英文網站的資訊,這裡推薦W3Schools 的 AngularJS Tutorial ,頗為簡要而易懂,其他資源則請參考 AngularJS 官方網站:
上述內容參考自 Developer Guide / Introduction
###

沒有留言:

張貼留言

熱門文章