微信小程序是一種不需要下載安裝即可使用的應用,用戶掃一掃或搜一下即可打開應用,正因為這樣的優勢,微信小程序在各領域得到廣泛的應用。
本書共16章,主要包括快速上手微信小程序,小程序的基礎組件,小程序的設計交互,小程序的高級組件,小程序的數據訪問與管理,小程序的分層架構,小程序的服務邏輯層實現,小程序的頁面邏輯層與渲染層實現,多人協同開發的編碼規范,代碼管理、分支開發與Git,多人協同開發的架構設計,多人協同開發實戰,構建穩健的Web服務客戶端,檢查數據更新,傳遞導航參數,復雜列表渲染,跨頁面數據同步等內容,使讀者全面掌握微信小程序全棧開發技術,提高項目開發的能力。
本書可以作為普通高等院校計算機相關專業和非計算機專業微信小程序開發課程的教材,也可作為微信小程序開發人員的參考書和廣大計算機愛好者的自學用書。
(1)以項目為導向,邊做邊學
本書以一個完整的實例搭建內容框架,圍繞項目的開發過程詳細介紹微信小程序的基本知識。同時,結合實例進行知識點的講解,將理論與實踐相結合,既提升了讀者的開發能力,又強化了讀者的學習的效果。
(2)技術標準,體系嚴謹
本書在確保內容淺顯易懂的同時,盡量遵循互聯網行業的技術標準,使讀者在具備微信小程序開發能力的同時,能夠洞察微信小程序背后的設計思想,并且能夠快速掌握可直接運用于生產實際的技術,培養讀者微信小程序開發的即戰力。
(3)內容形式豐富,配套立體化教學資源
本書以實例、拓展閱讀、視頻等方式講解相關知識,以動手做、邁出小圈子等形式推動讀者進行微信小程序的開發實踐,從而激發讀者學習的積極性。本書的重點難點及實例,均配有微課視頻講解,讀者掃描二維碼即可觀看視頻。另外,本書還配套教學課件、教學大綱、源代碼等教學資源,便于教師教學。
張引,博士,東北大學軟件學院軟件工程系副教授。主講課程:全棧開發技術。研究方向:基于深度學習的大數據分析技術、搜索學習技術、信道編碼理論。
第 1章 快速上手微信小程序5
1.1 系統與環境要求5
1.2 安裝微信開發者工具6
1.3 Hello World!7
1.3.1 創建項目7
1.3.2 設置微信開發者工具8
1.3.3 微信開發者工具的界面9
1.3.4 編寫WXML代碼10
1.3.5 編寫JavaScript代碼12
1.4 微信小程序的基本概念12
1.5 動手做13
1.6 邁出小圈子13
第 2章 小程序的基礎組件14
2.1 視圖容器與WXSS14
2.2 輸入框input17
2.2.1 bindinput屬性17
2.2.2 input組件與數據綁定19
2.3 選擇器picker20
2.4 開關選擇器switch22
2.5 彈出對話框showModal22
2.6 滑動選擇器slider23
2.7 學習組件的固定模式23
2.8 動手做24
2.9 邁出小圈子24
第3章 小程序的交互設計26
3.1 了解參考項目26
3.2 描繪圖形界面28
3.2.1 紙面原型圖28
3.2.2 線框圖28
3.2.3 原型工具30
3.3 形成操作動線31
3.4 識別已知,探索未知32
3.5 動手做34
3.6 邁出小圈子34
第4章 小程序的高級組件35
4.1 列表渲染35
4.1.1 顯示數組數據35
4.1.2 獲取用戶點擊的索引37
4.2 導航選項卡tabBar39
4.2.1 新建頁面39
4.2.2 創建導航選項卡40
4.2.3 修改導航選項卡的樣式42
4.3 微信小程序的導航43
4.3.1 頁面導航43
4.3.2 選項卡導航44
4.4 動手做45
4.5 邁出小圈子45
第5章 小程序的數據訪問與管理46
5.1 微信小程序的數據訪問與管理方法46
5.2 數據緩存47
5.3 小程序·云開發數據庫48
5.3.1 準備數據庫集合48
5.3.2 訪問數據庫50
5.3.3 回調函數與數據綁定51
5.4 訪問Web服務53
5.5 動手做56
5.6 邁出小圈子56
第6章 小程序的分層架構57
6.1 渲染層與邏輯層57
6.1.1 WXML與JS文件的關系57
6.1.2 小程序的渲染層實現59
6.1.3 小程序的邏輯層實現60
6.1.4 渲染層與邏輯層之間的通信60
6.2 邏輯層的進一步劃分62
6.2.1 微信小程序邏輯層的問題62
6.2.2 重構Database項目63
6.2.3 頁面邏輯層與服務邏輯層65
6.3 動手做66
6.4 邁出小圈子67
第7章 小程序的服務邏輯層實現68
7.1 開發切入點的選擇68
7.2 詩詞存儲服務的設計69
7.2.1 獲取給定的詩詞69
7.2.2 獲取滿足給定條件的詩詞數組70
7.3 詩詞存儲服務的實現72
7.3.1 引入數據庫服務72
7.3.2 實現獲取滿足給定條件的詩詞數組73
7.3.3 實現獲取給定的詩詞74
7.4 詩詞存儲服務的測試75
7.5 動手做76
7.6 邁出小圈子76
第8章 小程序的頁面邏輯層與渲染層實現78
8.1 搜索結果頁的邏輯層實現78
8.1.1 基礎邏輯實現78
8.1.2 無限滾動與onReachBottom79
8.2 搜索結果頁的渲染層實現83
8.3 搜索結果頁的測試85
8.4 動手做86
8.5 邁出小圈子86
第9章 多人協同開發的編碼規范87
9.1 命名規范87
9.1.1 變量的命名規范87
9.1.2 成員的命名規范91
9.2 排版規范92
9.2.1 JavaScript排版規范92
9.2.2 WXML排版規范93
9.3 注釋規范93
9.3.1 行級注釋規范93
9.3.2 對象級注釋規范94
9.4 動手做95
9.5 邁出小圈子95
第 10章 代碼管理、分支開發與Git97
10.1 準備工作97
10.2 將項目發布到Gitee97
10.3 添加倉庫成員102
10.4 克隆倉庫102
10.5 同步更改104
10.6 解決沖突106
10.7 撤銷更改110
10.8 分支開發111
10.9 動手做115
10.10 邁出小圈子115
第 11章 多人協同開發的架構設計116
11.1 分層架構設計116
11.2 渲染層設計117
11.3 頁面邏輯層設計120
11.4 審視相關的頁面122
11.5 服務邏輯層設計123
11.6 動手做126
11.7 邁出小圈子126
第 12章 多人協同開發實戰127
12.1 今日推薦頁的渲染層實現127
12.1.1 添加今日推薦頁127
12.1.2 創建渲染層分支127
12.1.3 絕對布局129
12.1.4 image組件的剪裁與縮放模式130
12.1.5 條件渲染130
12.1.6 設計時數據131
12.1.7 提交并推送渲染層分支132
12.2 今日推薦頁的頁面邏輯層實現132
12.2.1 創建頁面邏輯層分支132
12.2.2 創建函數與變量134
12.2.3 實現showDetailButtonBindTap函數135
12.2.4 實現onLoad函數135
12.3 動手做136
12.4 邁出小圈子137
第 13章 構建穩健的Web服務客戶端138
13.1 Web服務的訪問錯誤138
13.2 警告服務139
13.3 獲取訪問Token141
13.4 偏好存儲143
13.5 緩存訪問Token144
13.6 設置訪問Token145
13.7 準備備用方案147
13.8 動手做149
第 14章 檢查數據更新150
14.1 更新的檢查策略150
14.2 圖片信息存儲151
14.3 實現今日圖片服務153
14.4 動手做157
第 15章 傳遞導航參數158
15.1 利用快遞柜傳遞導航參數158
15.1.1 實現navigationService158
15.1.2 利用navigationService傳遞導航參數159
15.2 利用頁面間事件通信通道傳遞導航參數161
15.2.1 實現navigationService2161
15.2.2 利用navigationService2傳遞導航參數161
15.3 兩種方法的對比163
15.4 利用快遞柜傳遞選項卡導航參數163
15.5 導航到推薦詳情頁164
15.5.1 合并分支164
15.5.2 添加推薦詳情頁166
15.6 動手做167
第 16章 復雜列表渲染168
16.1 來自詩詞搜索頁的挑戰168
16.2 詩詞搜索頁的頁面邏輯層169
16.2.1 基礎變量169
16.2.2 設置搜索條件170
16.2.3 添加與刪除搜索條件172
16.2.4 執行搜索173
16.2.5 讀取導航參數174
16.3 詩詞搜索頁的渲染層175
16.4 動手做176
第 17章 跨頁面數據同步177
17.1 詩詞收藏的基本方法177
17.1.1 添加收藏存儲177
17.1.2 添加詩詞詳情頁180
17.1.3 導航到詩詞詳情頁183
17.1.4 添加詩詞收藏頁184
17.1.5 基本方法存在的問題188
17.2 回調驅動的詩詞收藏188
17.2.1 收藏存儲已更新回調函數188
17.2.2 關聯回調函數190
17.3 動手做191
17.4 下一步的學習191