第1章 初識React Native 1
1.1 React Native的優(yōu)點 2
1.2 風險和缺點 4
1.3 小結 4
第2章 React Native工作原理 5
2.1 React Native是如何工作的 5
2.2 渲染周期 7
2.3 在React Native中創(chuàng)建組件 7
2.3.1 編寫視圖 8
2.3.2 使用JSX 9
2.3.3 原生組件的樣式 10
2.4 宿主平臺API 11
2.5 小結 11
第3章 構建你的第一個應用 12
3.1 搭建環(huán)境 12
3.2 使用Create React Native App進行開發(fā)配置 13
3.2.1 使用create-react-native-app創(chuàng)建你的第一個應用 13
3.2.2 在iOS或者Android中預覽應用 14
3.3 使用傳統(tǒng)方式進行開發(fā)配置 15
3.3.1 使用react-native創(chuàng)建第一個應用 15
3.3.2 在iOS平臺運行React Native應用 16
3.3.3 在Android平臺運行React Native應用 17
3.4 探索示例代碼 17
3.5 開發(fā)天氣應用 20
3.5.1 處理用戶輸入 21
3.5.2 展現數據 24
3.5.3 從Web獲取數據 26
3.5.4 添加背景圖片 30
3.5.5 整合 31
3.6 小結 33
第4章 移動應用組件 35
4.1 類比HTML元素與原生組件 35
4.2 處理觸摸和手勢 39
4.3 使用列表 49
4.4 導航 62
4.5 其他結構化組件 63
4.6 小結 64
第5章 樣式 65
5.1 聲明和操作樣式 65
5.1.1 內聯樣式 66
5.1.2 對象樣式 66
5.1.3 使用Stylesheet.create 67
5.1.4 樣式拼接 67
5.2 組織和繼承 69
5.2.1 導出樣式對象 69
5.2.2 樣式作為屬性傳遞 70
5.2.3 復用和共享樣式 70
5.3 定位和設計布局 71
5.3.1 使用flexbox布局 71
5.3.2 使用絕對定位 75
5.3.3 學以致用 75
5.4 小結 79
第6章 平臺API 80
6.1 使用定位API 80
6.1.1 獲取用戶地理位置 81
6.1.2 處理權限問題 81
6.1.3 在模擬器上測試定位 82
6.1.4 監(jiān)聽用戶位置 84
6.1.5 限制 84
6.1.6 改進天氣應用 84
6.2 使用用戶圖片與攝像頭 87
6.2.1 使用相機模塊進行交互 87
6.2.2 通過getPhotoParams獲取圖片 88
6.2.3 從相機渲染一張圖片 89
6.2.4 上傳圖片至服務器 90
6.3 AsyncStore持久化數據存儲 91
6.4 SmarterWeather應用 92
6.5 小結 99
第7章 模塊和原生代碼 100
7.1 使用npm安裝JavaScript類庫 100
7.2 安裝包含原生代碼的第三方組件 102
7.3 Objective-C原生模塊 103
7.3.1 編寫iOS的Objective-C原生模塊 103
7.3.2 探索react-native-video iOS版本 107
7.4 Java原生模塊 110
7.4.1 編寫Android的Java原生模塊 110
7.4.2 探索react-native-video Java版本 113
7.5 跨平臺原生模塊 116
7.6 小結 116
第8章 平臺特定代碼 118
8.1 僅iOS/僅Android可用的組件 118
8.2 平臺特定組件的實現 119
8.2.1 使用平臺特定的文件擴展名 119
8.2.2 使用平臺模塊 122
8.3 何時使用平臺特定組件 122
第9章 調試與開發(fā)者工具 123
9.1 JavaScript調試實踐和解釋 123
9.1.1 激活開發(fā)者選項 123
9.1.2 使用console.log調試 125
9.1.3 使用JavaScript調試器 126
9.1.4 使用React開發(fā)者工具 127
9.2 React Native調試工具 128
9.2.1 使用審查元素功能 128
9.2.2 宕機紅屏 129
9.3 JavaScript之外的調試方法 132
9.3.1 常見的開發(fā)環(huán)境問題 132
9.3.2 常見的Xcode問題 133
9.3.3 常見的Android問題 134
9.3.4 React Native包管理器 135
9.3.5 部署至iOS設備的問題 135
9.3.6 模擬器行為 136
9.4 測試代碼 137
9.4.1 使用Flow進行類型檢查 137
9.4.2 使用Jest進行單元測試 138
9.4.3 使用Jest進行快照測試 139
9.5 當你陷入困境 142
9.6 小結 142
第10章 大型應用中的導航與結構 143
10.1 閃卡應用 143
10.2 項目結構 145
10.2.1 應用屏幕 146
10.2.2 可復用組件 152
10.2.3 樣式 156
10.2.4 數據模型 157
10.3 使用React Navigation 159
10.3.1 創(chuàng)建StackNavigator 160
10.3.2 使用navigation.navigate在屏幕之間過渡 160
10.3.3 使用navigationOptions配置頁眉 163
10.3.4 實現余下邏輯 164
10.4 本章小結 165
第11章 大型應用中的狀態(tài)管理 166
11.1 使用Redux管理狀態(tài) 166
11.2 action 167
11.3 reducer 169
11.4 連接Redux 172
11.5 使用AsyncStorage持久化數據 179
11.6 本章小結和作業(yè) 182
總結 183
附錄A 現代JavaScript語法 184
附錄B 部署應用 189
附錄C 使用Expo應用 192
作者簡介 193
關于封面 193