産品特色
編輯推薦
基於Angular 2,深入講解基本概念的背後原理,以及眾多優秀的設計模式和編程範式。
擺脫復雜配置,帶你從無到有地搭建前端應用,講解開門見山,語言風趣幽默
這不是一本介紹如何安裝配置的書籍,而是帶你立即進入Angular世界,從0到1開始搭建前端應用。作者用詼諧幽默的筆觸描寫瞭基本概念背後的原理,可快速搭建生産環境的應用。
內容簡介
本書係統介紹Angular的基礎知識與開發技巧,可幫助前端開發者快速入門。共有9章,第1章介紹Angular的基本概念,第2~7章從零開始搭建一個待辦事項應用,然後逐步增加功能,如增加登錄驗證、將應用模塊化、多用戶版本的實現、使用第三方樣式庫、動態效果製作等。第8章介紹響應式編程的概念和Rx在Angular中的應用。第9章介紹在React中非常流行的Redux狀態管理機製,這種機製的引入可以讓代碼和邏輯隔離得更好,在團隊工作中強烈建議采用這種方案。本書不僅講解Angular的基本概念和實踐,而且分享瞭作者解決問題的過程和邏輯,講解細膩,風趣幽默,適閤有麵嚮對象編程基礎的讀者閱讀。
作者簡介
王芃,資深開發人員、創業者,曾經在多傢軟件公司曆任項目經理、項目總監、部門經理,後創立成都索課科技有限公司。在多年的開發經曆中用Java等語言開發瞭多種類型的項目,積纍瞭豐富的開發經驗。樂於分享,發布大量技術文章。
精彩書評
如果你是Java程序員或C#程序員,那麼這本書將是你跨界到前端領域的捷徑!作者是一位熱愛技術的資深Java程序員,由他來寫這樣一本書真是再閤適不過瞭!
—— ThoughtWorker & Google開發技術專傢 雪狼
前端技術的發展正在變得越來越快,Angular在中國的使用者也正在變得越來越多。作為前端開發者,我們正在迎來一個亙古未有的時代!這本書以一個小應用貫穿全部,從實戰的角度覆蓋瞭Angular的全部重要知識點,是一本非常不錯的參考書。希望更多來自中國的技術專傢能齣來分享經驗,帶領大傢一起前進。
—— Google Angular Developers PM 大漠窮鞦
Angular 2.0的新特性包括:對於Native App的支持、服務器端渲染、更加專注移動應用開發、更加現代化,等等。本書根據作者真實的項目開發經驗,引入大量開發案例進行講解。同時講述生動有趣,讓枯燥的技術變得簡單易學,是不可多得的優質Angular學習書籍。重要的是,本書將一步一步帶領你掌握Angular 2.0的開發。
—— 海棠學院創始人CEO 張小河
目錄
前 言
第1章 認識Angular 1
1.1 Angular 2簡介 1
1.2 環境配置要求 2
1.3 第一個小應用 Hello Angular 3
1.4 第一個組件 6
1.5 一些基礎概念 8
1.5.1 元數據和裝飾器 8
1.5.2 模塊 10
1.5.3 組件 12
1.6 引導過程 13
1.7 代碼的使用和安裝 14
第2章 用Form錶單做一個登錄控件 15
2.1 對於login組件的小改造 17
2.2 建立一個服務完成業務邏輯 21
2.3 雙嚮數據綁定 26
2.4 錶單數據的驗證 28
2.5 驗證結果的樣式自定義 34
2.6 組件樣式 36
2.7 小練習 37
第3章 建立一個待辦事項應用 38
3.1 建立routing的步驟 38
3.1.1 路由插座 40
3.1.2 分離路由定義 41
3.2 讓待辦事項變得有意義 43
3.3 建立模擬Web服務和異步操作 47
3.3.1 構建數據模型 48
3.3.2 實現內存Web服務 49
3.3.3 內存服務器提供的Restful API 50
3.3.4 Angular 2內建的HTTP方法 52
3.3.5 JSONP和CORS 54
3.3.6 頁麵展現 54
3.4 小練習 58
第4章 進化!將應用模塊化 59
4.1 一個復雜組件的分拆 59
4.1.1 輸入和輸齣屬性 62
4.1.2 CSS樣式的一點小說明 70
4.1.3 控製視圖的封裝模式 72
4.2 封裝成獨立模塊 72
4.3 更真實的Web服務 76
4.4 完善Todo應用 78
4.5 填坑,完成漏掉的功能 82
4.5.1 用路由參數傳遞數據 82
4.5.2 批量修改和批量刪除 86
4.6 小練習 90
第5章 多用戶版本應用 91
5.1 數據驅動開發 91
5.2 驗證用戶賬戶的流程 96
5.2.1 核心模塊 97
5.2.2 路由守衛 98
5.3 路由模塊化 105
5.4 路由的惰性加載——異步路由 106
5.5 子路由 108
5.6 用VSCode進行調試 112
5.7 小練習 116
第6章 使用第三方樣式庫及
模塊優化 117
6.1 生産環境初體驗 117
6.2 更新angular-cli的方法 120
6.3 第三方樣式庫 121
6.4 第三方JavaScript類庫的集成方法 125
6.5 模塊優化 132
6.6 多個不同組件間的通信 134
6.7 方便的管道 140
6.7.1 自定義一個管道 142
6.7.2 內建管道的種類 143
6.8 指令 145
6.9 小練習 148
第7章 給組件帶來活力 149
7.1 更炫的登錄頁 149
7.1.1 響應式的CSS框架 149
7.1.2 尋找免費的圖片源 153
7.2 自帶動畫技能的Angular 2 157
7.3 Angular 2動畫再體驗 159
7.3.1 state和transition 159
7.3.2 奇妙的animate函數 164
7.3.3 關鍵幀 166
7.4 完成遺失已久的注冊功能 168
7.5 響應式錶單 173
7.5.1 錶單控件和錶單組 176
7.5.2 錶單提交 179
7.5.3 錶單驗證 179
7.5.4 錶單構造器 181
7.5.5 Restful API的實驗 182
7.6 Angular 2的組件生命周期 185
7.7 小練習 187
第8章 Rx——隱藏在Angular中的利劍 188
8.1 Rx再體驗 190
8.2 常見操作 194
8.2.1 閤並類操作符 195
8.2.2 創建類操作符 203
8.2.3 過濾類操作符 208
8.2.4 Subject 210
8.3 Angular 2中的內建支持 211
8.3.1 Async管道 214
8.3.2 Rx版本的Todo 216
8.4 小練習 223
第9章 用Redux管理Angular應用 224
9.1 什麼是Redux 224
9.1.1 Store 225
9.1.2 Reducer 225
9.1.3 Action 226
9.2 為什麼要在Angular中使用 227
9.3 如何使用Redux 231
9.3.1 簡單內存版 231
9.3.2 時光機器調試器 239
9.3.3 帶HTTP後颱服務的版本 242
9.3.4 一點小思考 247
9.3.5 用戶登錄和注冊的改造 248
9.4 小練習 256
9.5 小結 256
前言/序言
一個大叔碼農的Angular 2創世紀
作為一個齣生於20世紀70年代的大叔,我在軟件這個領域已經摸爬滾打瞭16年,從程序員、項目經理、産品經理,項目總監,到部門管理等各個角色都體驗過,深深地瞭解到這個行業發展的速度之快是其他行業無法比擬的:從編程語言、各種平颱、各種框架、設計模式到各類開源工具、組件林林總總,要學習的東西實在太多,因為變化太快。
但萬變不離其宗,名詞變化雖多,透射的本質其實是趨同的:那就是程序員受不瞭代碼的摺磨,韆方百計地想讓這個工作更簡單,更能應對變化。比如說,麵嚮對象編程(Object-Oriented Programming)理念的提齣其實是犧牲瞭部分性能換來代碼層次結構的清晰,因此也催生瞭C++、Java、C#等一係列優秀的麵嚮對象編程語言;後來程序員們發現在實際的編程邏輯中,往往不是像對象樹那樣可以劃分得那麼清楚。還有一些類似安全、日誌等功能其實是撒在係統各個角落的,於是,麵嚮切麵的編程(Aspect-Oriented Programming)應運而生。再後來一部分科學傢發現現有的編程語言做分析或數據計算實在太麻煩,明明要計算的邏輯很清晰,卻要用一大堆的對象封裝賦值,函數式編程(Functional Programming)便齣現瞭。最近幾年被産品經理逼瘋的程序員認為強類型語言改動起來太慢太繁瑣,於是動態腳本類語言大行其道。
仔細分析一下,這些語言不是互斥的,其實好的元素都是會被慢慢吸收到各自的語言、平颱上麵去的。比如C#、Java也采納瞭函數式編程的一些特點,像Lamda錶達式;再比如.NET和Java平颱基礎上也擁有動態腳本語言,像.NET平颱上的IronRuby,Java平颱上的Scala等。本書寫的Angular 2就是在JavaScript這種腳本語言基礎上引入瞭TypeScript,進而可以兼具麵嚮對象編程和強類型語言的優點;引入瞭依賴性注入(Dependency Injection)這種在強類型語言中被證明非常有用的設計模式;通過引入Rx,讓JavaScript擁有瞭函數式編程的能力。
寫這本書的起因很偶然。我們團隊以Android和iOS開發人員為主,前端開發人員隻有一個。但在開發過程中我們體會到原生App的開發迭代速度比較慢,因此希望以前端開發快速迭代,邏輯和界麵摸清楚後再進行App開發。我們決定走前端路綫後,就開始挑選前端框架,React、Vue和Angular 2我們都嘗試瞭,最終選擇Angular 2是因為榖歌在Angular 2中把多年Android開發積纍的優秀思想帶入瞭Angular,使得Angular的開發模式太像App開發瞭。有App開發經驗或者Java、.NET開發經驗的人可以非常舒服地切入進去。有瞭選擇,我就開始邊學習邊給開發小夥伴做培訓,培訓資料也就當成網文發錶齣來。沒想到在網上得到很多網友的支持和鼓勵,覺得我邊學邊寫時對一些問題的思考過程和改進過程對大傢的學習也很有幫助。而我也在與大傢的互動和分享中糾正瞭對一些概念和模式的認識。互動和分享是最好的學習方式,這也是本書區彆於其他“專門教程”的重要一點,我們是一起在學習,一起在思考的。特彆感謝簡書和掘金等平颱的讀者,幫我糾正瞭很多錯誤認識和筆誤等。機械工業齣版社的吳怡編輯也正是在網上看到我的文章後,鼓勵我結集齣書,給我提瞭很多中肯意見,最終纔有此書,非常感謝。
本書分為9章,第1~7章中我們從無到有地搭建瞭一個待辦事項應用,但是我們增加瞭一些需求:多用戶和HTTP後颱。這樣待辦事項這個應用就變得麻雀雖小五髒俱全。通過這樣一個應用的開發,我們熟悉瞭大部分重要的Angular 2概念和實踐操作。建議讀者按順序閱讀和實踐。閱讀完第7章,基本可以在正式的開發工作中上手瞭。第8章介紹瞭響應式編程的概念和Rx在Angular中的應用,可以說,如果不使用Rx,Angular 2的威力就摺半瞭,很多原來需要復雜邏輯處理的地方用Rx解決起來非常方便。由於Rx本身的學習麯綫較陡,我們花瞭很大篇幅做細緻的講解。第9章是在第8章基礎之上,引入瞭在React中非常流行的Redux狀態管理機製,這種機製的引入可以讓代碼和邏輯隔離得更好,在團隊工作中強烈建議采用這種方案。第8章和第9章由於學習門檻較高,有的讀者可能暫時接受起來有睏難,遇到這種情況可以先放下,等到使用Angular一段時間後再迴頭來看。
大傢在閱讀過程中可能會發現從第3章開始起,我們在不斷地打磨待辦事項這個應用的邏輯,持續地優化。我寫這本書其實不僅是為瞭讓大傢入門Angular(類似的書太多瞭,不需要我再寫一本),更多的是想把自己琢磨這些問題、解決這些問題的過程和邏輯與大傢分享,把一些好的設計模式和思想介紹給大傢,這些模式和思想遠比一個框架更有生命力。
本書適閤有麵嚮對象編程基礎的、掌握一門現代編程語言的讀者閱讀。如果有Java、C#、Objective-C等強類型語言背景,對於本書中介紹的Angular各種元數據修飾符接受程度會很高,對於TypeScript的類型等也會一點就透。如果有JavaScript背景,理解TypeScript語法是無障礙的,但強類型的約束和修飾符等概念需要仔細體會。如果使用過Spring Framework或者Dagger2等IoC框架,那麼對依賴性注入的概念就再熟悉不過瞭。
建議學習的同時或之後可以比較一些其他主流前端框架,比如React或Vue,參照後你會發現很多功能其實異麯同工。在讀本書的過程中如果發現有錯誤,希望你可以在書籍源碼的Github地址上提問題,我們一起打造一本一直在生長的書。希望年輕的你和大叔的我一起學習,一起麵對這個迅速成長的行業!
王芃
2017年2月11日
Angular從零到一 epub pdf mobi txt 電子書 下載 2024
Angular從零到一 下載 epub mobi pdf txt 電子書