描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302498131
《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
前 言
首先,笔者十分荣幸也十分高兴你选择本书来学习React Native的开发。由于笔者的个人能力有限,这本书可能并不是最完美最优秀的,但是相信无论你的基础如何,都可以随着本书的学习与练习,完完整整地独立开发出自己的React Native应用,因为笔者也是这么学过来的。因此,将本书定义为教程,不如称其为一本经验与总结的笔记,相信你在学习的过程中会深有体会。
说起来,JavaScript的语法并不是这本书的核心,但是学习一种功夫之前,一定要有一把顺手的武器,因为依然有很多初学者或原生开发者对JavaScript语言的了解并不深入,所以本书的前4章着重对JavaScript语法以及ES6的新特性进行介绍,帮助你为后边的学习扫除基础障碍。
学习客户端编程,最重要的莫属界面、数据、逻辑这3部分,本书的第5~8章将向你介绍React Native中的基础界面组件、数据与网络技术以及用户交互管理技术等,学习一门技能就是在完成一张大拼图,每一个知识点都是这张拼图中的一块,学习完这4章内容,你将掌握React Native开发中所有的基础技能,后面就是对它们的组合和应用了。
本书第9~11章提供了3个完整的React Native实战练习,这3章的项目也将由简到难,帮助你熟练应用前面所学习的知识。
本书第12章为扩展章节,这一章节将更偏向介绍React Native的一些高级开发技术,比如和原生交互、嵌入原生应用、开发React Native组件等,如果你有兴趣,可以好好研究一下。
IT领域日新月异,React Native是一种移动端跨平台软件开发框架,可能并不是最优秀的,但是Facebook的长期维护和它优秀的设计思想无论如何都是值得我们学习的。有人说,每学习一门技术,每次离开自己所擅长的领域走向新的领域学习都是一种重生,这个过程可以让你感受到不同的思维模式,体验到不同圈子的乐趣。和你一样,笔者也是一名学习者,
最后,再次感谢你选择了本书,笔者也真心地希望它可以帮助你到达自己的预定目标。这本书最终能呈现在你的面前,除了笔者的努力,还要感谢支持我的家人和朋友,尤其是王金柱编辑,在写作过程中他给了我巨大的帮助与鼓励。
珲 少
2018年2月
评论
还没有评论。