《Backbone·js應用程式開發》是2016年10月人民郵電出版社出版的圖書,作者是[美]Addy Osmani。
基本介紹
- 中文名:Backbone·js應用程式開發
- 作者:[美]Addy Osmani
- 出版時間:2016年10月
- 出版社:人民郵電出版社
- 頁數:316 頁
- ISBN:9787115356642
- 定價:55 元
- 開本:16 開
- 裝幀:平裝
內容簡介,圖書目錄,
內容簡介
Backbone.js提供了一套Web開發的框架,為複雜的JavaScript應用程式提供了一個MVC結構。
《Backbone.js應用程式開發》詳細介紹了如何使用Backbone.js完成Web套用開發。全書從了解MVC、SPA和Backbone.js的基本知識開始,然後著手構建3個示例應用程式。《Backbone.js應用程式開發》還介紹了Backbone和Grunt-BBB、jQuery Mobile等開發工具的配合使用,以及Jasmine、QUnit和SinonJS等測試解決方案。
《Backbone.js應用程式開發》的作者是知名的JavaScript專家、谷歌Chrome團隊的工程師Addy Osmani。《Backbone.js應用程式開發》適合於JavaScript程式設計師、Web開發人員,尤其是想要學習和使用Backbone.js的讀者閱讀參考。
圖書目錄
第 1章 概述 1
1.1 什麼是MVC 2
1.2 什麼是Backbone.js 2
1.3 何時需要JavaScript MVC框架 3
1.4 為何考慮Backbone.js 4
1.5 設定預期目標 5
第 2章 基本概念 8
2.1 MVC 8
2.1.1 Smalltalk-80 MVC 8
2.1.2 MVC套用於Web 9
2.1.3 客戶端MVC和單頁面應用程式 12
2.1.4 客戶端MVC:Backbone風格 13
2.1.5 實現規範 16
2.2 MVC能帶給我們什麼 19
2.2.1 深究MVC 19
2.2.2 總結 20
2.2.3 延伸閱讀 20
2.3 基本概況 20
2.3.1 Backbone.js 20
2.3.2 使用案例 21
第3章 Backbone基礎 25
3.1 準備開始 25
3.2 模型(Model) 26
3.2.1 初始化 27
3.2.2 默認值 27
3.2.3 賦值與取值 28
3.2.4 監聽模型變化 30
3.2.5 驗證 32
3.3 視圖(View) 33
3.3.1 創建視圖 33
3.3.2 el是什麼 34
3.4 集合(Collection) 39
3.4.1 添加和移除模型 40
3.4.2 檢索模型 40
3.4.3 事件監聽 42
3.4.4 重置和刷新集合 44
3.4.5 Underscore實用函式 45
3.4.6 鏈式API 49
3.5 RESTful持久化 50
3.5.1 從伺服器上獲取模型 50
3.5.2 保存模型到伺服器 50
3.5.3 從伺服器刪除模型 51
3.5.4 選項 52
3.6 事件(Event) 52
3.6.1 on、off和trigger53
3.6.2 listenTo和stopListening56
3.6.3 事件與視圖 57
3.7 路由(Router) 58
3.8 Backbone同步API 63
3.9 依賴檔案 67
3.10 總結 67
第4章 練習1:Todos——第 一個Backbone.js應用程式 68
4.1 靜態HTML 69
4.1.1 HTML頭部和Script腳本 69
4.1.2 應用程式HTML 70
4.1.3 模板 71
4.2 Todo模型 72
4.3 Todo集合 72
4.4 應用程式視圖(AppView) 74
4.5 獨立的待辦項視圖(TodoView) 79
4.6 程式啟動 81
4.7 實戰操作 82
4.8 標記完成或刪除todo項 84
4.9 Todo路由 86
4.10 總結 88
第5章 練習2:Book Library——第 一個RESTful風格的Backbone.js應用程式 89
5.1 程式建立 89
5.2 界面布局 96
5.2.1 添加模型 96
5.2.2 刪除模型 97
5.3 創建後端系統 98
5.3.1 安裝Node.js、npm、MongoDB 98
5.3.2 安裝Node模組 99
5.3.3 創建簡單的Web伺服器 99
5.3.4 連線到資料庫 102
5.4 和伺服器通信 108
5.5 總結 113
第6章 Backbone擴展 114
6.1 MarionetteJS(Backbone.Marionette) 114
6.1.1 Boilerplate渲染代碼 116
6.1.2 使用Marionette.ItemView減少Boilerplate 117
6.1.3 記憶體管理 117
6.1.4 區域管理 120
6.1.5 Marionette Todo應用程式 122
6.1.6 Todo應用程式的Marionette實現更具可維護性嗎? 132
6.1.7 Marionette與靈活性 132
6.1.8 更多特性 134
6.2 Thorax 134
6.2.1 Hello World 134
6.2.2 嵌入子視圖 135
6.2.3 視圖助手 136
6.2.4 集合助手 137
6.2.5 自定義HTML Data屬性 138
6.2.6 Thorax資源 139
6.3 總結 140
第7章 常見問題和解決方案 141
7.1 使用嵌套視圖 141
7.1.1 問題 141
7.1.2 解決方案1 141
7.1.3 解決方案2 142
7.1.4 解決方案3 143
7.1.5 解決方案4 143
7.2 在嵌套視圖中管理模型 145
7.2.1 問題 145
7.2.2 解決方案 145
7.3 在子視圖中渲染父視圖 146
7.3.1 問題 146
7.3.2 解決方案 146
7.4 消除視圖層級結構 147
7.4.1 問題 147
7.4.2 解決方案 147
7.5 渲染視圖層級結構 148
7.5.1 問題 148
7.5.2 解決方案 148
7.6 使用嵌套模型或嵌套集合 149
7.6.1 問題 149
7.6.2 解決方案 149
7.7 更好的模型屬性驗證 150
7.7.1 問題 150
7.7.2 解決方案 150
7.7.3 Backbone.validateAll 152
7.7.4 Backbone.Validation 154
7.7.5 特定表單驗證類 155
7.8 避免多個Backbone版本的衝突 155
7.8.1 問題 155
7.8.2 解決方案 155
7.9 構建層級模型和層級視圖 156
7.9.1 問題 156
7.9.2 解決方案 156
7.9.3 調用重載方法 157
7.9.4 Backbone-Super 159
7.10 事件聚合器和中介者 159
7.10.1 問題 159
7.10.2 解決方案 160
7.10.3 事件聚合器 160
7.10.4 中介者 161
7.10.5 相似性與差異性 162
7.10.6 關係:何時用,用哪個 163
7.10.7 事件聚合器與中介器一起使用 164
7.10.8 模式語言:語義 165
第8章 模組化開發 166
8.1 使用RequireJS和AMD組織模型 166
8.1.1 多個腳本檔案的可維護性問題 167
8.1.2 需要更好的依賴管理 167
8.1.3 異步模組定義(AMD) 168
8.1.4 使用RequireJS編寫AMD模組 168
8.1.5 RequireJS入門 170
8.1.6 Require.js/Backbone示例 172
8.1.7 使用RequireJS和Text外掛程式將模板保持在外部 176
8.1.8 使用RequireJS最佳化生產環境中的Backbone套用 177
8.2 總結 180
第9章 練習3:第 一個模組化的Backbone/RequireJS應用程式 181
9.1 概述 181
9.2 HTML代碼 182
9.3 配置選項 183
9.4 模組化模型、視圖、集合 184
9.5 基於路由的模組載入 189
9.5.1 基於JSON的模組配置 189
9.5.2 模組載入器 190
9.5.3 使用NodeJS處理pushState 191
9.6 另外一種依賴管理方式 192
第 10章 對Backbone.js請求和集合進行分頁 193
10.1 Backbone.Paginator 194
10.2 Paginator.requestPager 195
10.3 Paginator.clientPager 199
10.3.1 便利方法 202
10.3.2 實現備註 204
10.3.3 外掛程式 205
10.3.4 引導 206
10.3.5 樣式化 207
10.4 總結 208
第 11章 Backbone Boilerplate和Grunt-BBB 209
11.1 準備開始 211
11.2 創建新項目 211
11.2.1 index.html 212
11.2.2 config.js 213
11.2.3 main.js 215
11.2.4 app.js 216
11.2.5 創建Backbone樣板模組 218
11.2.6 router.js 220
11.3 其他有用的工具和項目 221
11.3.1 Yeoman 221
11.3.2 Backbone DevTools 223
11.4 總結 223
第 12章 Backbone和jQuery Mobile 224
12.1 使用jQuery Mobile進行移動套用開發 224
12.1.1 jQMobile漸進部件增強原則 225
12.1.2 理解jQuery Mobile導航 226
12.2 Backbone套用的基礎設定(用於jQuery Mobile) 227
12.3 Backbone和jQueryMobile的工作流程 230
12.3.1 路由到具體視圖頁面,繼承於BasicView 231
12.3.2 移動頁面模板的管理 232
12.3.3 DOM管理與$.mobile.changePage 234
12.4 在Backbone上套用jQM高 級技術 237
12.4.1 動態DOM腳本 237
12.4.2 攔截jQuery Mobile事件 239
12.4.3 性能 240
12.4.4 智慧型的多平台支持管理 241
第 13章 Jasmine 246
13.1 行為驅動開發 246
13.2 suite、spec以及spie 248
13.3 beforeEach()和afterEach() 252
13.4 共享作用域 254
13.5 準備開始 255
13.6 TDD與Backbone 256
13.7 模型 256
13.8 集合 258
13.9 視圖 260
13.10 練習 268
13.11 延伸閱讀 268
13.12 總結 268
第 14章 QUnit 269
14.1 準備開始 269
14.2 斷言 272
14.2.1 使用test(name, callback)編寫基礎測試用例 272
14.2.2 比較函式的實際輸出和期望輸出 273
14.3 為斷言添加結構 273
14.3.1 QUnit基本模組 273
14.3.2 使用setup()和teardown() 274
14.3.3 使用setup()和teardown()用於初始化和清理工作 274
14.4 斷言示例 275
14.5 Fixtures 276
14.6 異步代碼 279
第 15章 SinonJS 281
15.1 SinonJS概述 281
15.1.1 基礎spy 282
15.1.2 在現有函式上監聽 282
15.1.3 檢測接口 282
15.2 stub與mock 284
15.2.1 stub 284
15.2.2 mock 285
15.3 練習 286
15.3.1 模型 286
15.3.2 集合 288
15.3.3 視圖 289
15.3.4 App 290
15.4 延伸閱讀與資源 291
第 16章 結論 293
附錄A 延伸學習 295
附錄B 資源 313
封面介紹 316