VOOZH about

URL: https://read01.com/nGOR8y.html

⇱ CSDN知識庫精品推薦:AngularJS學習指南 - 壹讀


Saturday, Apr 11, 2026

CSDN知識庫精品推薦:AngularJS學習指南

2017/02/21 來源:CSDN知識庫

知無不言 第十三期

知識庫特邀編輯講技術的那些事兒

李澤揚,CSDN知識庫特邀編輯,雜誌作者。在多玩YY負責升龍遊戲雲平台前端開發。之前曾任職於騰訊,主要技術棧為Java及前端,GitHub帳號為giantray。

編者說

如果你是一名前端開發工程師,但還不了解AngularJS是做什麼用的。那麼,強烈建議仔細閱讀本文。 一言以蔽之,AngularJS(本文主要介紹的是1.x版本)是一款優秀的前端JavaScript框架,由Google開發、維護。該框架有著諸多特性,最為核心的是MVVM、模塊化、自動化雙向數據綁定、語義化標籤、依賴注入等。

AngularJS概述

【生態圈成熟】

在GitHub上,AngularJS以超過48000個Star,高居榜第四位,在前端領域,只落後於Bootstarp,高於React及jQuery,其受歡迎的程度,可見一斑。以ng作為關鍵字在GitHub上搜索,有超過8000個JavaScript項目,而這些項目,很大一部分就是AngularJS的第三方開源組件。也就是說,AngularJS的生態圈已經頗為完善,你不用頻繁造輪子,有很多現成的工具可以用。

【AngularJS帶來了什麼】

AngularJS代表了目前前端開發的一種趨勢,有很多先進的設計理念。很多人初次認識AngularJS,會被其神奇的雙向綁定及語義化標籤所吸引。在實際的項目開發中,也會發現,AngularJS解決了界面和數據聯動這一非常繁瑣的問題,切切實實為開發縮減了大量的代碼(例如少了很多元素選擇、設值取值的代碼),一樣的功能,用AngularJS實現,代碼量可能只有jQuery的三分之一,開發人員可以有更多的精力集中於實際業務邏輯中。另外,遵循AngularJS規範開發,代碼職責更加清晰,可維護性更好,可以防止一些剛學JavaScript的程式設計師寫出一堆難以維護的代碼,指令的特性,極大提高項目Web組件化的程度。

而對於學習者來說,可以帶來以下的提升:

1. 學習MVVM的模式,寫邏輯分層更佳的代碼,你會發現自己以前把各種各樣的代碼邏輯都扔到一起,簡直就是一坨「文明用語」 。

2. 學習模塊化開發 。

3. 理解Web組件化的理念和設計模式。

4. 學習如何寫可測性更佳的代碼。著力提高可測性,是AngularJS的一大設計哲學。

【沒有完美的框架】

就AngularJS 1.x來說,還存在不少缺憾。例如,受人詬病的,AngularJS概念太多,有一定的學習曲線。在瀏覽器兼容方面,從AngularJS 1.3版本之後,就拋棄了對IE8瀏覽器的支持。對於崇尚小而美的人來說,AngularJS體積龐大,架構重,可以幹的事情太多。在性能方面,其髒檢查的特性註定了會存在局限。

但是,世上沒有完美的框架,也不要為了學框架而學。對於項目開發來說,一定要結合實際情況,決定是否引入新框架、新技術。而從學習角度講,學習框架,不僅是解決問題,更要學習框架的思想。

👁 Image
...

CSDN知識庫包含了知識體系和相關知識點內容

AngularJS 知識節點

1. 視圖與內置指令:AngularJS內置了大量指令,如ng-model、ng-if、ng-class、ng-click等,幫助我們寫HTML模板。你需要理解這些指令應該如何使用,例如如何通過雙向綁定ng-model指令,往HTML中填充值,通過ng-click綁定事件等。

2. Controller:在AngularJS中,通過Controller來初始化數據和定義事件函數。你的AngularJS學習之旅,可以從寫一個簡單的HTML模板及對應的Controller開始。

3. Directive:Directive是AngularJS中比較難上手,但也是非常重要的概念。它相當於一個自定義的HTML元素。Directive是Web組件化開發的利器,能夠將view中複雜的交互邏輯抽取為一個個指令,使view具有更強的可讀性及維護性。你可以從最簡單的指令開始,逐步了解如何綁定HTML模版,綁定事件,寫對應的Controller,傳參等。

4. Filter:你可以自定義Filter,用來在HTML模板上做數據格式化,值到值的轉換。Filter比較簡單,但經常會用到。

5. 頁面路由:真正的Web項目,當然離不開頁面路由。AngularJS官方提供了路由庫ngRoute,另外,還有一個好用且廣受推薦的第三方庫Angular-UI-Router。前者是簡單版,後者功能更加強大。我個人傾向於使用Angular-UI-Router,因為它能覆蓋更多實際的業務場景。

6. HTTP:你可以通過$http和後端伺服器通信,也可以用更高級的封裝$resource和RESTful API通信。這兩個組件可以帶來抽象層級更高的後台通信邏輯。另外,你還會接觸到$promise,用一種更加優雅的鏈式方式寫異步通信邏輯。

7. 服務:說到服務(Service),那就一定要好好了解Provider、Factory、Service的差別和使用方式。在實際項目開發中,一般會將後台數據請求與數據緩存邏輯放到Service(或者Factory)中,以方便在不同的Controller中復用公共的邏輯。

8. 深入原理:如果你覺得AngularJS已經基本入門了,建議再重點理解以下原理:AngularJS啟動過程、依賴注入、髒檢查機制、MVVM模式、AngularJS作用域、$promise。徹底理解這些原理之後,相信你對AngularJS的認識會提升一個層次。

9. AngularJS 2:AngularJS 2跟AngularJS1.x的差別非常大,甚至可以認為是兩套完全不同的框架。本文截稿之前,AngularJS 2.0還處於Beta階段。至於是用AngularJS 1.x還是用AngularJS 2,我個人的觀點是,在未來一段時間,AngularJS 1.x還會有較強的生命力,官方團隊也表示會繼續維護1.x版本,AngularJS 2周邊的資料及開源組件也需要時間去積累。所以,如果是現在要上馬的項目,還是用AngularJS 1.x靠譜些。在學習和使用AngularJS1.x的過程中,對於前端的架構設計、個人視野的提高,也有較大的幫助。

10. 測試:自動(單元)測試涉及的兩個主要工具是Jasmine和Karma。AngularJS在設計之初,就希望能使程式設計師編寫更乾淨、可靠、可測試的代碼。這是AngularJS帶來的最有價值的特性之一。

11. 前端工程化:在開發大型Web項目時,需要用到前端工程化的方式,解決可以自動化處理的事情,解放生產力。例如,可以用Grunt、Gulp、Webpack做代碼混淆、打包、自動構建等,用Bower做包依賴管理,用Yeoman自動生成代碼。工欲善其事必先利其器,將AngularJS和這些生產力工具結合,對項目的開發效率大有裨益。

12. 移動開發:ionic是一個基於AngularJS、較為成熟的移動開發框架。它可以用來做Hybrid App開發,寫JavaScript代碼,最終生成可以運行在Android及iOS上的App。

13. 官方的增強組件及第三方組件:在實際開發中,你也許還需要了解如何通過ngTranslate做本地化、ngAnimate做動畫。另外,還可以到GitHub上搜索「ng」,然後按Star數排行,看看有哪些受歡迎,好用的第三方組件。

您可能感興趣
免責聲明:本文內容來源于CSDN知識庫,文章觀點不代表壹讀立場,如若侵犯到您的權益,或涉不實謠言,敬請向我們提出檢舉
最新文章 / 服務條款 / 私隱保護 / DMCA / 聯絡我們

壹讀/READ01.COM