近些年前端框架很是多,主流的有 Vue、React、Angular 等。我參與的項目中使用較多的是 Vue。由於 Vue 學習難度不大,上手很快,代碼簡潔,並且使用 Vue 全家桶(Vue + Vue-Router + Axios + Vuex + Vue-Bus等)、再配合 Element UI 等第三方UI組件庫進行開發也是不錯的選擇。Vue 的做者是華人,故文檔等各方面資料也很是齊全。 但我的體會:若是前端項目龐大,在工程化方面,Angular 是最佳選擇,最貼近 Java 後端開發的思想。無論怎麼說,幾你們族各有利弊,任何爭辯都毫無心義,根據項目和喜愛愛用啥就用啥。html
Angular 學習思路前端
在 Angular 的學習過程當中充滿興奮刺激與痛苦,在幾個項目中也逐漸對 Angular 的學習有一些體會。個人學習過程大概是這樣的:ios
Getting Start
爲主,一步一步安裝配置開發環境(NodeJS、Angular Cli等);Hello World
,並運行,確保環境配置成功;Hello World
瞭解angular工程的目錄結構及文件;參考網站 Angular 官網: https://angular.io/guide/quickstarttypescript
對 Angular 的基本概念有個大體的印象後,接下來按照官網的 Toutorial 教程(開發 Tour of Heroes 應用),一邊閱讀教程,一邊跟着開發。該教程首先介紹了整個應用的功能和效果,接着從命令行建立工程開始,一步步實現並完善工程。整個教程涉及了 Angular 的不少知識,如組件的封裝、依賴注入、路由、服務、HTTP 網絡請求等;遇到不會的、不理解的,先忽略,照着把代碼先敲下來,再回頭去理解消化;跟着寫完後,會對 Angular 的開發有必定的感受。後端
參考網站 Angular 官網: https://angular.io/tutorial前端框架
Angular 支持 TS 和 ES6,官方推薦使用微軟的 TypeScript 語言。 經過 Tour of Heroes 應用編寫的學習,會接觸到一些 TS 的語法。此時能夠回過頭去系統掌握 TS。主要內容包括:數據類型、模塊、函數、泛型、面向對象(類、對象、構造函數、繼承)等。微信
參考網站 TypeScript 中文網: https://www.tslang.cn/docs/home.html網絡
閱讀 Angular 官網的語法 Fundamentals 部分,系統學習 Angular 的內容。主要包括:架構
參考網站 Angular 官網: https://angular.io/guide/architectureapp
RxJS 是 Angular 的重心,我的以爲 若是在 Angular 項目開發過程當中不使用 RxJS,則失去 Angular 很大一部分優點。 RxJS 加入了在時間線方面的思考,能夠使不少複雜的問題簡單化,強烈建議深刻學習。
首先學習 RxJS 的幾個核心對象 Observable、Observer、 Subjects、 Subscription,而後瞭解 RxJS 中常見的操做符, 最後練習 RxJS 在 Angular 中的使用。
參考網站
RxJS 文檔: https://rxjs-dev.firebaseapp.com/guide/observable Angular 官網: https://angular.io/guide/observables
NGRX 是基於 Redux 開發的一套適合 Angular 的狀態管理技術。 應用中全部的數據、UI 均可以看作"狀態"。 當應用龐大時,若是數據須要在多個組件間複用,此時狀態管理就能夠發揮做用了。 NGRX 主要包含 Actions、 Reducers、 Effects 三個主要模塊,此外還有 Entity, Router-Store等, 按照官網很容易上手。
參考網站
NGRX 官網: https://ngrx.io/guide/store
有了上面的基礎後,就能夠在項目裏面大膽使用 Angular 了。如後臺管理系統、App 開發、 前臺應用等。 在項目實戰中又會接觸到其餘一些技術。
本文僅談了我在 Angular 的學習過程當中的思路,以及我對 Angular 技術組成的理解,後續打算挑一些 主題 或 項目實戰 寫一些詳細的理解和體會。
有興趣的夥伴歡迎關注微信公衆號