第 1章 React Native背景知识\t1
1.1 React Native的诞生与发展 1
1.2 移动跨平台技术横评 3
1.2.1 阿里巴巴Weex 3
1.2.2 谷歌Flutter 4
1.2.3 谷歌PWA 5
1.2.4 对比与分析 6
1.3 本章小结 7
第 2章 React Native入门基础 8
2.1 React Native环境搭建 8
2.1.1 安装Node.js 8
2.1.2 安装Android环境 9
2.1.3 安装iOS环境 11
2.1.4 安装React Native 12
2.2 React Native开发工具 13
2.3 React Native快速上手 14
2.3.1 初始化项目 14
2.3.2 运行项目 15
2.3.3 调试项目 16
2.3.4 修改默认项目 19
2.4 本章小结 20
第3章 React Native基础语法 21
3.1 JSX语法 21
3.2 语法基础 22
3.2.1 let和const命令 22
3.2.2 类 23
3.2.3 箭头函数 23
3.2.4 模块 24
3.2.5 Promise对象 25
3.2.6 async函数 26
3.3 Flexbox布局 28
3.3.1 Flexbox布局简介 28
3.3.2 flexDirection属性 30
3.3.3 flexWrap属性 31
3.3.4 justifyContent属性 32
3.3.5 alignSelf属性 34
3.3.6 flex属性 35
3.4 本章小结 36
第4章 React技术详解 37
4.1 React简介 37
4.2 React组件详解 39
4.2.1 React组件基础知识 39
4.2.2 props 41
4.2.3 state 43
4.2.4 ref 44
4.3 React高阶组件 47
4.3.1 定义与实现 47
4.3.2 分类 49
4.3.3 命名与参数 49
4.4 组件通信 50
4.4.1 父子组件通信 50
4.4.2 跨级组件通信 52
4.4.3 非嵌套组件通信 54
4.5 事件处理 56
4.5.1 事件监听与处理 56
4.5.2 event事件与this关键字 57
4.5.3 EventEmitter在React Native中的应用 59
4.6 React Hook 61
4.6.1 Hook简介 61
4.6.2 Hook API 62
4.6.3 自定义Hook 65
4.7 本章小结 67
第5章 React Native组件详解 68
5.1 基础组件 68
5.1.1 Text 68
5.1.2 TextInput 70
5.1.3 Image 74
5.1.4 ActivityIndicator 77
5.1.5 Switch 79
5.2 容器组件 80
5.2.1 View组件 80
5.2.2 ScrollView组件 82
5.2.3 WebView组件 85
5.2.4 TouchableOpacity组件 87
5.3 列表组件 89
5.3.1 VirtualizedList组件 89
5.3.2 FlatList组件 91
5.3.3 SectionList组件 98
5.4 平台组件 100
5.4.1 ViewPagerAndroid组件 101
5.4.2 SafeAreaView组件 103
5.4.3 SegmentedControlIOS 104
5.5 PureComponent组件 106
5.6 本章小结 107
第6章 React Native API 108
6.1 基础API 108
6.1.1 AppRegistry 108
6.1.2 AppState 109
6.1.3 NetInfo 110
6.1.4 AsyncStorage 112
6.1.5 DeviceEventEmitter 114
6.2 屏幕相关API 116
6.2.1 Dimensions 116
6.2.2 PixelRatio 116
6.3 动画API 117
6.3.1 requestAnimationFrame 118
6.3.2 LayoutAnimation 119
6.3.3 Animated 121
6.4 平台API 127
6.4.1 BackHandler 127
6.4.2 PermissionsAndroid 128
6.4.3 AlertIOS 132
6.4.4 PushNotificationIOS 133
6.5 本章小结 137
第7章 React Native开发进阶 138
7.1 组件生命周期详解 138
7.1.1 组件生命周期基础知识 138
7.1.2 虚拟DOM 141
7.1.3 虚拟DOM与生命周期 142
7.2 状态管理 143
7.2.1 Flux 144
7.2.2 Redux 148
7.2.3 MobX 151
7.2.4 MobX与Redux的对比 156
7.3 第三方库 157
7.3.1 NativeBase 157
7.3.2 react-native-elements 159
7.3.3 react-navigation 161
7.3.4 react-native-snap-carousel 167
7.3.5 react-native-image-picker 172
7.3.6 react-native-video 177
7.4 自定义组件 181
7.4.1 组件导入与导出 181
7.4.2 自定义弹框组件 182
7.4.3 自定义单选组件 184
7.4.4 自定义评分组件 188
7.5 本章小结 190
第8章 网络与通信 191
8.1 网络请求 191
8.1.1 XMLHTTPRequest 191
8.1.2 fetch 193
8.1.3 async-await 196
8.2 Promise 198
8.3 与原生交互 202
8.3.1 与原生Android交互 202
8.3.2 与原生iOS交互 206
8.3.3 事件交互 207
8.4 本章小结 209
第9章 服务器开发基础 210
9.1 Node.js开发 210
9.1.1 Node.js简介 210
9.1.2 安装和使用nvm 211
9.1.3 Node.js示例 212
9.2 RESTful API 213
9.3 ExPress框架 216
9.3.1 安装与使用 216
9.3.2 项目结构 218
9.3.3 路由控制 219
9.3.4 模板引擎 220
9.4 开发服务器接口 221
9.4.1 MySQL 221
9.4.2 Postman 222
9.4.3 ExPress整合MySQL 223
9.5 本章小结 226
第 10章 React Native测试 227
10.1 软件测试 227
10.2 React Native单元测试 228
10.2.1 环境与配置 228
10.2.2 快照测试 229
10.2.3 覆盖率 230
10.3 Jest 231
10.3.1 匹配与断言 231
10.3.2 全局函数 233
10.3.3 Mock测试 234
10.3.4 异步函数 236
10.3.5 Enzyme 238
10.4 本章小结 241
第 11章 应用发布与热更新 242
11.1 iOS应用发布 242
11.1.1 加入开发者计划 242
11.1.2 生成发布证书 243
11.1.3 注册App ID 245
11.1.4 生成描述文件 245
11.1.5 打包资源文件 246
11.1.6 发布iOS应用 247
11.2 Android应用发布 249
11.2.1 生成签名文件 249
11.2.2 打包资源文件 250
11.2.3 发布Android应用 250
11.3 热更新详解 252
11.3.1 热更新基础知识 252
11.3.2 应用启动过程 253
11.3.3 热更新示例 255
11.4 CodePush实战 257
11.4.1 CodePush简介 257
11.4.2 CodePush安装与账号注册 258
11.4.3 集成CodePush SDK 260
11.4.4 手动集成CodePush SDK 261
11.4.5 iOS应用热更新 263
11.4.6 Android应用热更新 266
11.5 本章小结 268
第 12章 电影购票App开发实战 269
12.1 实战项目概述 269
12.2 项目搭建全流程解析 270
12.2.1 项目初始化 270
12.2.2 网络请求 271
12.2.3 开发主页 272
12.2.4 自定义导航栏 274
12.3 业务功能开发 275
12.3.1 电影列表 275
12.3.2 电影搜索 277
12.3.3 电影详情 279
12.3.4 视频播放 281
12.3.5 刘海屏与全面屏 282
12.4 本章小结 284