Angular 學習之路
《Angular 學習之路》是現在打算重新開始的一個系列。之所以開啟一個新的系列,而且是打算長期進行的系列,是因為這是豆子的本職工作所使用到的技術。因此,對 Angular 的應用會有一個比較堅實的基礎。
《Angular 學習之路 》只關心 Angular 2 及以上版本。關於 Angular 和 AngularJS 的關係,按照官方說法,AngularJS 特指 1.x 版本。雖然看起來像是大版本的升級,但 Angular 與 AngularJS 的實際內容有顯著的差異,就像雷鋒和雷峰塔的差別,完全可以當做兩套框架。從 2.x 開始,Angular 推薦使用 TypeScript 進行開發。AngularJS 現在已經進入維護期,不再新增新的功能。除非舊有系統,現在基本不再推薦學習 AngularJS。
按照每年兩個大版本的速度,Angular 版本號飆升很快。2014年10月,Angular 2 釋出。2018年10月,Angular 7 已經發布。儘管如此,Angular 的 API 基本保持相容。也就是說,Angular 7 與 Angular 2 或者 Angular 6 的差異,遠遠小於與 AngularJS 的差異。Angular 2 的程式碼幾乎可以 不經過任何修改,即可通過 Angular 7 的編譯。所以,本系列的題目是“Angular”,而不是“AngularJS”或者“Angular 2”。除此以外,Angular 的版本號還有很多有趣的八卦,比如不存在 Angular 3 等。感興趣的童鞋可以到網上找到很多相關的文章。
現在,Angular 與 React 和 Vue 一起併成為前端開發的三大框架。前端框架多如牛毛,很容易陷入各種爭端之中,這裡我們不去理會這些討論。單就 Angular 而言,其學習曲線可能是三大框架中最陡峭的。
Angular 是一個一站式框架,包含開發用的 CLI 工具、整合了單元測試工具、內建前端路由、HTTP 請求等模組。除了模組眾多,Angular 還建立在 RxJS 基礎之上。這是一種與普通程式設計模型完全不同的響應式程式設計模型。要學習 Angular,我們不得不學習很多周邊技術。比如,Angular 使用 TypeScript 開發,我們需要學習一門新的語言 TypeScript。如果你有 Java、C# 等語言的開發基礎,上手 TypeScript 會非常容易,如果只有 JavaScript 基礎,可能會有一定的難度。RxJS 就更不用說了,需要非常長的時間才能轉換成響應式程式設計思維。
不過,這些都不會成為阻擋我們學習 Angular 的攔路虎,相信通過《 Angular 學習之路》,我們可以逐漸掌握 Angular 的使用方法,編寫出更好的 web 應用程式。
儘管如此,本系列還是假設讀者已經擁有一定程度的 JavaScript(特別是 ES 6)、CSS、HTML 的程式設計基礎。如果再有點 Java 或者 C# 等面嚮物件語言的基礎,那就更好不過了。
鑑於現在正是“一入前端深似海”,本系列也不可能對 Angular 面面俱到,限於豆子的水平,很多也只可能點到為止。所謂拋磚引玉,正是想借《Angular 學習之路》這些篇章,引出來好玉,就已經是最大的心願了!