本書以Vue.js 2為基礎(chǔ),以項目實戰(zhàn)的方式來引導(dǎo)讀者漸進式學(xué)習(xí)Vue.js。本書分為基礎(chǔ)篇、進階篇和實戰(zhàn)篇三部分;A(chǔ)篇主要是對 Vue.js 核心功能的介紹;進階篇主要講解前端工程化Vue.js的組件化、插件的使用;實戰(zhàn)篇著重開發(fā)了兩個完整的示例,所涉及的內(nèi)容涵蓋Vue.js絕大部分API。通過閱讀本書,讀者能夠掌握Vue.js框架主要API的使用方法、自定義指令、組件開發(fā)、單文件組件、Render函數(shù)、使用webpack開發(fā)可復(fù)用的單頁面富應(yīng)用等。 本書示例豐富、側(cè)重實戰(zhàn),適用于剛接觸或即將接觸Vue.js的開發(fā)者,也適用于對Vue.js有過開發(fā)經(jīng)驗,但需要進一步提升的開發(fā)者。
梁灝:網(wǎng)名 Aresn,基于 Vue.js 的開源 UI 組件庫 iView 的作者。目前在大數(shù)據(jù)公司 TalkingData 負責(zé)可視化基礎(chǔ)架構(gòu)。創(chuàng)辦了程序員社區(qū) TalkingCoder。
目 錄
第1篇 基礎(chǔ)篇
第1章 初識Vue.js 3
1.1 Vue.js是什么 3
1.1.1 MVVM模式 3
1.1.2 Vue.js有什么不同 4
1.2 如何使用Vue.js 5
1.2.1 傳統(tǒng)的前端開發(fā)模式 5
1.2.2 Vue.js的開發(fā)模式 5
第2章 數(shù)據(jù)綁定和第一個Vue應(yīng)用 8
2.1 Vue實例與數(shù)據(jù)綁定 9
2.1.1 實例與數(shù)據(jù) 9
2.1.2 生命周期 10
2.1.3 插值與表達式 11
2.1.4 過濾器 13
2.2 指令與事件 15
2.3 語法糖 18
第3章 計算屬性 19
3.1 什么是計算屬性 19
3.2 計算屬性用法 20
3.3 計算屬性緩存 23
第4章 v-bind及class與style綁定 25
4.1 了解v-bind指令 25
4.2 綁定class的幾種方式 26
4.2.1 對象語法 26
4.2.2 數(shù)組語法 27
4.2.3 在組件上使用 29
4.3 綁定內(nèi)聯(lián)樣式 30
第5章 內(nèi)置指令 32
5.1 基本指令 32
5.1.1 v-cloak 32
5.1.2 v-once 33
5.2 條件渲染指令 33
5.2.1 v-if、v-else-if、v-else 33
5.2.2 v-show 36
5.2.3 v-if與v-show的選擇 36
5.3 列表渲染指令v-for 37
5.3.1 基本用法 37
5.3.2 數(shù)組更新 41
5.3.3 過濾與排序 43
5.4 方法與事件 44
5.4.1 基本用法 44
5.4.2 修飾符 46
5.5 實戰(zhàn):利用計算屬性、指令等知識開發(fā)購物車 47
第6章 表單與v-model 55
6.1 基本用法 55
6.2 綁定值 61
6.3 修飾符 63
第7章 組件詳解 65
7.1 組件與復(fù)用 65
7.1.1 為什么使用組件 65
7.1.2 組件用法 66
7.2 使用props傳遞數(shù)據(jù) 70
7.2.1 基本用法 70
7.2.2 單向數(shù)據(jù)流 72
7.2.3 數(shù)據(jù)驗證 74
7.3 組件通信 75
7.3.1 自定義事件 75
7.3.2 使用v-model 77
7.3.3 非父子組件通信 79
7.4 使用slot分發(fā)內(nèi)容 83
7.4.1 什么是slot 83
7.4.2 作用域 84
7.4.3 slot用法 85
7.4.4 作用域插槽 87
7.4.5 訪問slot 89
7.5 組件高級用法 90
7.5.1 遞歸組件 90
7.5.2 內(nèi)聯(lián)模板 92
7.5.3 動態(tài)組件 93
7.5.4 異步組件 94
7.6 其他 95
7.6.1 $nextTick 95
7.6.2 X-Templates 96
7.6.3 手動掛載實例 97
7.7 實戰(zhàn):兩個常用組件的開發(fā) 98
7.7.1 開發(fā)一個數(shù)字輸入框組件 98
7.7.2 開發(fā)一個標簽頁組件 106
第8章 自定義指令 118
8.1 基本用法 118
8.2 實戰(zhàn) 121
8.2.1 開發(fā)一個可從外部關(guān)閉的下拉菜單 121
8.2.2 開發(fā)一個實時時間轉(zhuǎn)換指令v-time 126
第2篇 進階篇
第9章 Render函數(shù) 133
9.1 什么是Virtual Dom 133
9.2 什么是Render函數(shù) 136
9.3 createElement用法 140
9.3.1 基本參數(shù) 140
9.3.2 約束 143
9.3.3 使用JavaScript代替模板功能 147
9.4 函數(shù)化組件 153
9.5 JSX 157
9.6 實戰(zhàn):使用Render函數(shù)開發(fā)可排序的表格組件 159
9.7 實戰(zhàn):留言列表 172
9.8 總結(jié) 183
第10章 使用webpack 184
10.1 前端工程化與webpack 184
10.2 webpack基礎(chǔ)配置 187
10.2.1 安裝webpack與webpack-dev-server 187
10.2.2 就是一個js文件而已 188
10.2.3 逐步完善配置文件 191
10.3 單文件組件與vue-loader 194
10.4 用于生產(chǎn)環(huán)境 201
第11章 插件 206
11.1 前端路由與vue-router 207
11.1.1 什么是前端路由 207
11.1.2 vue-router基本用法 208
11.1.3 跳轉(zhuǎn) 212
11.1.4 高級用法 213
11.2 狀態(tài)管理與Vuex 216
11.2.1 狀態(tài)管理與使用場景 216
11.2.2 Vuex基本用法 217
11.2.3 高級用法 221
11.3 實戰(zhàn):中央事件總線插件vue-bus 227
第3篇 實戰(zhàn)篇
第12章 iView經(jīng)典組件剖析 235
12.1 級聯(lián)選擇組件Cascader 236
12.2 折疊面板組件Collapse 249
12.3 iView內(nèi)置工具函數(shù) 257
第13章 實戰(zhàn):知乎日報項目開發(fā) 261
13.1 分析與準備 261
13.2 推薦列表與分類 265
13.2.1 搭建基本結(jié)構(gòu) 265
13.2.2 主題日報 267
13.2.3 每日推薦 271
13.2.4 自動加載更多推薦列表 276
13.3 文章詳情頁 278
13.3.1 加載內(nèi)容 278
13.3.2 加載評論 281
13.4 總結(jié) 286
第14章 實戰(zhàn):電商網(wǎng)站項目開發(fā) 288
14.1 項目工程搭建 288
14.2 商品列表頁 290
14.2.1 需求分析與模塊拆分 290
14.2.2 商品簡介組件 291
14.2.3 列表按照價格、銷量排序 297
14.2.4 列表按照品牌、顏色篩選 306
14.3 商品詳情頁 309
14.4 購 物 車 313
14.4.1 準備數(shù)據(jù) 314
14.4.2 顯示和操作數(shù)據(jù) 316
14.4.3 使用優(yōu)惠碼 320
14.5 總結(jié) 324
第15章 相關(guān)開源項目介紹 325
15.1 服務(wù)端渲染與Nuxt.js 325
15.1.1 是否需要服務(wù)端渲染 325
15.1.2 Nuxt.js 326
15.2 HTTP庫axios 327
15.3 多語言插件vue-i18n 329