AngularJS - 概述



AngularJS是一個開源的Web應用程式框架。它最初由Misko Hevery和Adam Abrons於2009年開發,現在由Google維護。其最新版本為1.2.21。

AngularJS的官方文件對它的定義如下:

AngularJS是一個用於動態Web應用程式的結構化框架。它允許您使用HTML作為模板語言,並允許您擴充套件HTML的語法以清晰簡潔地表達您的應用程式元件。它的資料繫結和依賴注入消除了您目前必須編寫的大量程式碼。所有這一切都在瀏覽器中發生,使其成為任何伺服器技術的理想合作伙伴。

一般特性

AngularJS的一般特性如下:

  • AngularJS是一個高效的框架,可以建立豐富的網際網路應用程式(RIA)。

  • AngularJS為開發者提供了使用JavaScript以清晰的模型-檢視-控制器(MVC)方式編寫客戶端應用程式的選擇。

  • 用AngularJS編寫的應用程式是跨瀏覽器相容的。AngularJS自動處理適合每個瀏覽器的JavaScript程式碼。

  • AngularJS是開源的,完全免費的,並被全球數千名開發者使用。它採用Apache許可證2.0版授權。

總的來說,AngularJS是一個構建大型、高效能、易於維護的Web應用程式的框架。

核心特性

AngularJS的核心特性如下:

  • 資料繫結 - 它是模型和檢視元件之間資料的自動同步。

  • 作用域 - 這些是指向模型的物件。它們充當控制器和檢視之間的粘合劑。

  • 控制器 - 這些是繫結到特定作用域的JavaScript函式。

  • 服務 - AngularJS附帶一些內建服務,例如$http用於執行XMLHttpRequests。這些是單例物件,在應用程式中只例項化一次。

  • 過濾器 - 這些從陣列中選擇專案子集並返回一個新陣列。

  • 指令 - 指令是DOM元素上的標記,例如元素、屬性、CSS等等。這些可以用來建立自定義HTML標籤,作為新的自定義控制元件。AngularJS具有內建指令,例如ngBind、ngModel等。

  • 模板 - 這些是從控制器和模型中獲取資訊的渲染檢視。這些可以是單個檔案(例如index.html)或使用部分檢視在一個頁面中的多個檢視。

  • 路由 - 這是切換檢視的概念。

  • 模型-檢視-其他 - MVW是一種將應用程式劃分為不同部分的設計模式,稱為模型、檢視和控制器,每個部分都有不同的職責。AngularJS並沒有以傳統意義上實現MVC,而是更接近於MVVM(模型-檢視-檢視模型)。Angular JS團隊幽默地將其稱為模型-檢視-其他。

  • 深度連結 - 深度連結允許將應用程式的狀態編碼到URL中,以便可以將其新增書籤。然後可以從URL將應用程式恢復到相同的狀態。

  • 依賴注入 - AngularJS具有內建的依賴注入子系統,可以幫助開發者輕鬆建立、理解和測試應用程式。

概念

下圖描述了AngularJS的一些重要部分,我們將在後續章節中詳細討論。

AngularJS Concepts

AngularJS的優勢

AngularJS的優勢在於:

  • 它提供了以非常清晰和可維護的方式建立單頁應用程式的能力。

  • 它為HTML提供資料繫結能力。因此,它為使用者提供了豐富且響應迅速的體驗。

  • AngularJS程式碼是單元可測試的。

  • AngularJS使用依賴注入並利用關注點分離。

  • AngularJS提供可重用的元件。

  • 使用AngularJS,開發者可以用較少的程式碼實現更多功能。

  • 在AngularJS中,檢視是純HTML頁面,而用JavaScript編寫的控制器進行業務處理。

最重要的是,AngularJS應用程式可以在所有主要瀏覽器和智慧手機上執行,包括基於Android和iOS的手機和平板電腦。

AngularJS的缺點

雖然AngularJS有很多優點,但這裡也有一些需要關注的點:

  • 不安全 - 作為僅限JavaScript的框架,用AngularJS編寫的應用程式並不安全。必須進行伺服器端身份驗證和授權才能確保應用程式安全。

  • 不可降級 - 如果您的應用程式使用者停用了JavaScript,則除了基本頁面之外,將看不到任何內容。

AngularJS 指令

AngularJS框架可以分為三個主要部分:

  • ng-app - 此指令定義並將AngularJS應用程式連結到HTML。

  • ng-model - 此指令將AngularJS應用程式資料的值繫結到HTML輸入控制元件。

  • ng-bind - 此指令將AngularJS應用程式資料繫結到HTML標籤。

廣告