Angularjs——初識AngularJS

2023-01-13 15:00:42

AngularJS——初識AngularJS

AngularJS是什麼

AngularJS是Google開源的一款前端JS結構化框架,它通過對前端開發進行分層,極好地規範了前端開發的風格——它將前端開發分為Controller層、Service層、DAO層和Model層。其中,Model物件與HTML頁面(檢視)上HTML元素進行雙向繫結,開發者可通過Controller呼叫Service、DAO與後端互動,獲取後端資料之後,只要修改其中Model物件的值,檢視頁面也會隨之動態改變。這個設計架構層次非常清晰,而且具有一定的「強制性」,整個前端團隊一旦採用AngularJS框架,那麼整個前端開發風格會變得簡單、清晰,所有團隊成員都能採用一致的開發風格,這也是AngularJS的魅力所在。

AngularJS特性(優點)

  • 雙向資料繫結;
  • 宣告式依賴注入;
  • 解耦應用邏輯、資料模型和檢視;
  • 完善的頁面指令;
  • 客製化表單驗證;
  • Ajax封裝。

與jQuery的比較

jQuery

  • JS函數庫;
  • 封裝簡化DOM操作。

AngularJS

  • JS結構化框架;
  • 主體不再是DOM,而是頁面中的動態資料。

AngularJS的應用

構建單頁面(single page application,SPA)Web應用或Web APP應用。

單頁面應用(single page application)

定義

將所有的活動侷限於一個頁面,瀏覽器一開始就載入網頁所有內容,當頁面中有部分資料發生了變化,不會重新整理整個頁面,而是區域性重新整理(利用的Ajax技術)。

優點

  • 使用者體驗好,內容的改變不需要重新載入整個頁面;
  • 適合前後端分離開發,伺服器只出資料,減輕了伺服器壓力。

缺點

  • 首屏載入速度慢;
  • 不利於SEO優化。

AngularJS的組成

  • ng-app : 該指令用於設定AngularJS應用。例如為<body.../>元素增加了ng-app屬性,這意味著所有AngularJS應用處於<body.../>元素內。在<body.../>元素內可使用其他AngularJS指令,也可使用{{}}來輸出表示式。
  • ng-model : 該指令用於執行「雙向繫結」,所謂雙向繫結指的是將HTML輸入元素的值與AngularJS應用的某個變數進行繫結。完成「雙向繫結」之後,當HTML輸入元素的值發生改變時,AngularJS應用中繫結的變數的值也會隨之改變;反過來,當程式修改AngularJS應用的變數的值時,HTML輸入元素的值也會隨之改變。
  • ng-bind : 該指令用於繫結ng-model的資料。

下載AngularJS

AngularJS也是一個純粹的JavaScript庫,下載AngularJS與下載其它JavaScript庫一樣,開啟連結後,選中相應的版本下載即可。下載連結

注意

  • AngularJS是AngularJS 1.X,並不是Angular 2.X(Angular 2沒有JS字尾);
  • AngularJS 1.X是真正輕量級JavaScript框架,比較適合熟悉JavaScript的前端開發者;
  • Angular 2.X使用的是TypeScript指令碼,其開發高度依賴Node.js。

版本選擇

  • angular.min.js:該版本是去除註釋後的AngularJS庫,檔案體積較小,開發實際專案時推薦使用該版本。
  • angular.js:該版本的AngularJS庫沒有壓縮,而且保留了註釋。學習AngularJS及有興趣研究AngularJS原始碼的讀者可以使用該版本。
  • angular-xxx.min.js:AngularJS為特定功能提供的支援庫。比如angular-animate.min.js就是AngularJS的動畫支援庫;angular-cookies.min.js就是AngularJS的Cookie存取支援庫。
  • angular-xxx.js:與對應的angular-xxx-min.js庫的功能相同,只是保留了註釋,沒有壓縮。

安裝AngularJS

AngularJS庫的安裝很簡單,只要在HTML頁面中匯入AngularJS的JavaScript檔案即可。

<script type="text/javascript" src="angular.min.js"></script>

其中,src 屬性為待匯入的AngularJS檔案。

第一個AngularJS應用

<!DOCTYPE html>
<html>
  <head lang="en">
    <meta charset="UTF-8" />
    <script src="../../js/angular-1.2.29/angular.js"></script>
    <title>第一個程式</title>
  </head>
  <body ng-app>
    <input type="text" ng-model="mymodel" />
    <p>您輸入的內容是:<span>{{mymodel}}</span></p>
  </body>
</html>