《React Native全教程:移动端跨平台应用开发》由经验丰富的移动开发工程师精心编撰,《React Native全教程:移动端跨平台应用开发》从逻辑上可分为5个部分,循序渐进地向读者展示使用React Native开发跨平台移动应用的全流程,第1部分介绍React Native语言基础JavaScript;第2部分介绍大量使用于React Native开发中的ECMAScript 6的新特性;第3部分介绍React Native开发技巧,包括独立组件应用、布局技术、网络技术、导航栈技术等;第4部分通过3个实战项目手把手地教读者开发完整的React Native应用;第5部分介绍React Native的一些高级技巧,比如和原生交互、嵌入原生应用、React Native组件开发等。本书特别对React Native在开发iOS和Android 跨平台应用时给出范例效果对比演示,现场感十足。 《React Native全教程:移动端跨平台应用开发》既适合想快速上手React Native的初学者、有Android和iOS开发基础想构建跨平台移动应用的开发人员使用,也可用作培训机构和大中专院校的教学参考书。
目录
- 第1章 从JavaScript开始 1
- 1.1 学习环境的配置 1
- 1.1.1 使用浏览器进行JavaScript代码的调试 1
- 1.1.2 使用Sublime Text工具来编写JavaScript代码 3
- 1.1.3 安装Sublime Text插件管理器PackageControl 3
- 1.1.4 使用PackageControl进行JavaScript代码智能提示插件的安装 5
- 1.1.5 安装JavaScript代码格式化插件 7
- 1.1.6 在Sublime Text中运行JavaScript代码 7
- 1.2 初识JavaScript 8
- 1.2.1 JavaScript的语法特点 9
- 1.2.2 JavaScript中的变量 10
- 1.3 JavaScript中的数据类型 12
- 1.3.1 原始类型 13
- 1.3.2 引用类型 16
- 1.4 JavaScript中的运算符 18
- 1.4.1 算术运算符 18
- 1.4.2 赋值运算符 21
- 1.4.3 关系运算符 22
- 1.4.4 逻辑运算符 24
- 1.4.5 位运算符 26
- 1.4.6 特殊运算符 30
- 1.4.7 运算符的优先级与结合性 32
- 第2章 JavaScript流程控制与函数 34
- 2.1 条件分支结构 34
- 2.1.1 if-else分支结构 34
- 2.1.2 switch-case分支结构 35
- 2.2 循环结构 37
- 2.2.1 while循环结构 37
- 2.2.2 for循环结构 38
- 2.3 中断与跳转结构 39
- 2.3.1 break语句 39
- 2.3.2 continue语句 41
- 2.4 异常捕获结构 42
- 2.4.1 使用throw语句抛出异常 43
- 2.4.2 异常的捕获与处理 44
- 2.4.3 异常的传递 46
- 2.5 JavaScript中的函数 48
- 2.5.1 使用函数语句定义函数 48
- 2.5.2 使用函数表达式定义函数 50
- 2.5.3 使用Function构造函数 51
- 第3章 JavaScript对象基础 52
- 3.1 初识JavaScript对象 52
- 3.1.1 在JavaScript中创建对象 52
- 3.1.2 设置对象的属性和行为 54
- 3.2 JavaScript中常用的内置对象 55
- 3.2.1 JavaScript中的Number对象 55
- 3.2.2 JavaScript中的String对象 57
- 3.2.3 JavaScript中的Boolean对象 59
- 3.2.4 JavaScript中的Array对象 60
- 3.2.5 JavaScript中的Date对象 64
- 3.2.6 JavaScript中的Math对象 67
- 3.2.7 JavaScript中的RegExp对象 69
- 3.2.8 JavaScript中的Function对象 73
- 3.3 深入JavaScript中的Object对象 75
- 3.3.1 为对象属性进行配置 76
- 3.3.2 Object构造方法对象中的常用函数 77
- 3.3.3 Object实例对象中的常用方法 82
- 3.4 面向对象编程技术 82
- 3.4.1 JavaScript中模拟类的方式 83
- 3.4.2 在JavaScript中实现继承机制 86
- 第4章 ECMAScript 6新特性 91
- 4.1 ECMAScript 6的块级作用域 91
- 4.1.1 let关键字 92
- 4.1.2 const关键字 94
- 4.2 解构赋值 95
- 4.2.1 数组的解构赋值 95
- 4.2.2 对象的解构赋值 96
- 4.2.3 字符串与函数参数的解构赋值 98
- 4.3 箭头函数 99
- 4.3.1 箭头函数的基本用法 99
- 4.3.2 箭头函数中this的固化 100
- 4.4 Set与Map数据结构 102
- 4.4.1 Set集合结构 102
- 4.4.2 Map字典结构 104
- 4.5 Proxy代理 106
- 4.5.1 使用Proxy代理对对象的属性读写进行拦截 106
- 4.5.2 Proxy代理处理器支持的拦截操作 108
- 4.6 Promise承诺对象 110
- 4.6.1 Promise对象执行异步任务 110
- 4.6.2 Promise任务链 112
- 4.6.3 Promise对象组合 113
- 4.7 Generator生成器与yield语句 115
- 4.7.1 Generator函数应用 115
- 4.7.2 Generator任务参数的传递 117
- 4.8 使用class定义类 119
- 4.8.1 使用class定义类 119
- 4.8.2 class类的继承 120
- 4.9 模块引入 121
- 4.9.1 export关键字 121
- 4.9.2 import关键字 122
- 4.9.3 默认导出与导入 122
- 第5章 React Native开发环境的搭建 124
- 5.1 iOS开发环境的搭建 124
- 5.1.1 申请AppleID账号 124
- 5.1.2 安装Xcode开发工具 125
- 5.2 Android开发环境的搭建 126
- 5.2.1 下载Android Studio开发工具 126
- 5.2.2 安装相关SDK和模拟器 127
- 5.3 React Native开发环境配置 130
- 5.3.1 安装React Native构建环境 130
- 5.3.2 运行你的第一个React Native应用 131
- 第6章 React Native独立组件基础篇 134
- 6.1 Text文本组件的应用 134
- 6.1.1 文字风格设置 134
- 6.1.2 Text组件属性的设置 138
- 6.1.3 Text组件的嵌套 140
- 6.1.4 React Native程序的调试 141
- 6.2 Button按钮组件的应用 142
- 6.2.1 Button组件的简单使用 142
- 6.2.2 小应用:屏幕霓虹灯 144
- 6.3 Image图像组件的应用 145
- 6.3.1 渲染图像的方式 145
- 6.3.2 Image组件的风格自定义 148
- 6.3.3 Image组件的属性和方法解析 151
- 6.4 Switch开关组件的应用 154
- 6.5 Slider滑块组件的应用 156
- 6.6 ActivityIndicator指示器组件的应用 159
- 6.7 TextInput用户输入组件的应用 160
- 6.8 StatusBar状态栏组件的应用 165
- 6.9 Picker选择器组件的应用 167
- 6.10 Modal模态视图组件的应用 169
- 6.11 KeyboardAvoidingView组件的应用 171
- 6.12 WebView网页组件的应用 174
- 6.12.1 WebView常用属性解析 174
- 6.12.2 WebView加载过程监听相关属性 177
- 6.12.3 React Native与WebView交互 178
- 6.13 View视图组件的应用 179
- 6.13.1 View组件Style属性的解析 180
- 6.13.2 View组件基础属性的解析 182
- 6.14 Touchable相关交互组件的应用 183
- 6.14.1 TouchableWithoutFeedback 184
- 6.14.2 TouchableOpacity 185
- 6.14.3 TouchableNativeFeedback 186
- 6.14.4 TouchableHighlight 188
- 6.15 ScrollView滚动视图组件的应用 189
- 6.15.1 ScrollView的基础用法 189
- 6.15.2 ScrollView常用属性解析 190
- 6.15.3 手动设置ScrollView组件的滚动位置 192
- 6.16 ListView列表组件的应用 193
- 6.16.1 使用DataSource渲染ListView视图 193
- 6.16.2 ListView属性方法解析 197
- 6.17 高性能列表组件FlatList 199
- 6.17.1 创建一个简单的FlatList列表视图 199
- 6.17.2 FlatList中常用方法解析 202
- 6.18 分区列表组件SectionList的应用 202
- 6.19 RefreshControl刷新组件的应用 205
- 第7章 React Native独立组件高级篇 208
- 7.1 时间选择器DatePickerIOS组件的应用 208
- 7.2 DrawerLayoutAndroid抽屉组件的应用 209
- 7.3 进度条组件的应用 211
- 7.3.1 通过文件名分平台加载组件 212
- 7.3.2 ProgressBarAndroid组件常用属性 213
- 7.3.3 ProgressViewIOS组件常用属性 214
- 7.4 SegmentedControlIOS组件的应用 214
- 7.5 Android平台上的工具条组件 215
- 7.6 Navigator导航控制器 218
- 7.6.1 Navigatior牛刀小试 219
- 7.6.2 Navigator属性配置 220
- 7.6.3 Navigator实例方法解析 221
- 7.7 iOS平台的导航控制器NavigatorIOS组件 222
- 7.7.1 使用NavigatorIOS组件 222
- 7.7.2 NavigatorIOS属性与方法解析 225
- 7.8 标签栏TabBarIOS组件 226
- 第8章 React Native技能进阶 230
- 8.1 React Native布局技术 230
- 8.1.1 布局中的主轴与次轴 231
- 8.1.2 精准定义组件的尺寸 234
- 8.1.3 相对定位与绝对定位 237
- 8.2 React Native中的颜色定义 240
- 8.3 警告弹窗的应用 242
- 8.3.1 Alert组件的应用 243
- 8.3.2 iOS平台专用警告框AlertIOS 245
- 8.4 ActionSheetIOS抽屉视图的应用 247
- 8.4.1 普通功能列表抽屉 247
- 8.4.2 分享视图抽屉 248
- 8.5 自定义组件的属性与使用样式表 250
- 8.5.1 自定义组件的属性 250
- 8.5.2 通过StyleSheet样式表定义组件的风格 251
- 8.6 Android平台的时间选择器 252
- 8.7 Android平台悬浮提示信息Toast的应用 254
- 8.8 监听与控制Android设备返回键的行为 255
- 8.9 监听程序运行状态 257
- 8.10 跨平台的分享功能 258
- 8.11 监听键盘事件 260
- 8.12 React Native网络技术 262
- 8.12.1 使用fetch方法进行网络请求 262
- 8.12.2 使用XMLHttpRequest进行网络请求 264
- 8.13 进行用户位置获取 266
- 8.14 数据持久化技术 267
- 8.15 剪贴板工具的应用 270
- 8.16 获取设备网络状态 271
- 8.17 React Native动画技术 273
- 8.17.1 创建单值驱动的动画 273
- 8.17.2 使用timing方法执行平滑过渡动画 275
- 8.17.3 深入理解easing 276
- 8.17.4 二维动画对象与衰减动画 278
- 8.17.5 弹簧动画 280
- 8.17.6 Interpolation插值动画 281
- 8.17.7 聚合动画值 282
- 8.17.8 组合动画 283
- 8.17.9 循环动画 285
- 8.17.10 布局动画 286
- 8.17.11 自定义组件动画 287
- 8.18 调用设备振动模块 288
- 8.19 封装滑动手势 289
- 8.20 获取屏幕尺寸信息 292
- 8.21 特定平台代码 293
- 8.22 定时器的简单应用 294
- 第9章 实战项目:汇率转换器 296
- 9.1 搭建汇率转换器项目主界面 297
- 9.2 显示屏面板的初步开发 299
- 9.3 货币类型切换功能开发 302
- 9.4 键盘界面设计 306
- 9.5 实现汇率转换器核心功能 310
- 第10章 实战项目:微信热门精选 315
- 10.1 申请免费的API服务 315
- 10.2 搭建项目网络模块 317
- 10.3 搭建文章列表界面 319
- 10.4 文章目录视图与首页导航栏完善 322
- 10.5 文章详情页面的开发 326
- 10.6 为文章列表页添加下拉刷新与上拉加载更多功能 329
- 第11章 实战项目:掌上新闻 332
- 11.1 应用结构搭建 332
- 11.2 完善标题栏组件 335
- 11.3 进行网络模块的开发 338
- 11.4 使用列表展示数据 339
- 11.5 完善新闻目录列表 341
- 11.6 标题栏与页面联动开发与优化加载逻辑 344
- 11.7 使用导航进行页面跳转 348
- 11.8 完善下拉刷新与上拉加载更多功能 351
- 11.9 完善导航栏 353
- 11.10 添加收藏夹功能 356
- 11.11 优化方向与应用图标设置 361
- 第12章 React Native高级技巧 363
- 12.1 直接操作组件的属性 363
- 12.2 对React Native版本进行升级 365
- 12.3 React Native的更多调试技巧 366
- 12.4 React Native插件开发 367
- 12.4.1 构建iOS工程的原生模块 367
- 12.4.2 构建Android工程的原生模块 371
- 12.4.3 深入了解原生模块的函数参数 373
- 12.5 封装原生UI组件 375
- 12.5.1 封装iOS平台的原生UI组件 375
- 12.5.2 开发Android跑马灯组件 382
- 12.6 在原生工程中嵌入React Native模块 387
- 12.6.1 将iOS工程的某个模块进行React Native化 387
- 12.6.2 将Android工程的某个模块进行React Native化 391
- 12.7 在真机上运行React Native工程 397