React Native跨平台移动应用开发(第二版)
举报
正版全新
-
作者:
阙喜涛 编著
-
出版社:
电子工业出版社
-
ISBN:
9787121312731
-
出版时间:
2017-05
-
装帧:
其他
-
开本:
16开
-
纸张:
胶版纸
-
页数:
398页
-
作者:
阙喜涛 编著
-
出版社:
电子工业出版社
-
ISBN:
9787121312731
-
出版时间:
2017-05
-
装帧:
其他
-
开本:
16开
售价
¥
74.29
7.5折
定价
¥99.00
品相
全新
上书时间2024-07-13
卖家超过10天未登录
-
-
商品描述:
-
【书 名】 React Native跨平台移动应用开发(第二版)
【书 号】 9787121312731
【出 版 社】 电子工业出版社
【作 者】 阙喜涛 编著
【出版日期】 2017-05-01
【版 次】 2
【开 本】 16开
【页 码】 398
【定 价】 99.00元
【编辑推荐】
本书配套的GitHub文档持续更新中,保证书中知识在zui新版本RN中可用。
★ 迄今为止,真正意义上的React Native跨平台开发原创图书。
★ 本书架构是作者精心设计的,适合初学者入门,本次升级用 ES6语法写。
★ 本书所有例程均是原创的,并且在代码旁有注释解说。
★ 本书中的6.5节、第11章、14.5节都是笔者精心整理调研出来的技术,能让更多的开发者享受到React Native开发的便利xing。
★ 加入了React Native一年以来的新能力:
1、RN项目在iOS 10手机上的配置启动过程;
2、RN项目断点调试的使用方法;
3、手机中图片剪切、通过网络上传;
4、RN开源社区介绍与知名开源组件介绍;
5、Modal组件与Navigator组件的配合使用;
6、网络部分增加了测试服务器的搭建与介绍,让读者更方便掌握RN的网络开发;
7、推送能力、打开外部链接与从外部链接打开RN应用能力
8、新组件:ActivityIndicator、PermissionsAndroid、Slider、Vibration;
9、原各RN组件从0.28到0.42期间新增的属xing与方法介绍。
【内容简介】
React Native是Facebook公司推出的强大的、开源的跨平台移动应用开发框架。它能大幅减少跨平台移动应用开发的工作量(相比原生代码开发能减少至少50%),并且代码结构清晰、简单易懂。同时React Native框架采用模块化的结构,使应用版本的更新迭代非常简单。随着它的日趋成熟,React Native必然会成为移动应用开发的主流技术。本书由浅入深,系统发介绍了使用React Native框架跨平台开发所需要用到的知识。本书每一章都专注于阐述移动应用开发某一方面的知识,配合若干个原创的、精简的例程,能让读者系统、快速地掌握该方面知识。本书的结构是按一个有基本的编程基础知识,刚学习JavaScript基本语法的读者的*学习路径来编写的。有一定基础的开发人员也可以将本书作为一本React Native开发的“字典”来使用,在开发时可以快速查找相关知识点的细节。希望通过本书,能将*的React Native开发技术介绍给国内广大开发者,让国内移动应用开发进入一个新的时代,让开发者用比较少的精力就能高效、美观地完成移动应用开发。
【目录】
第1章 React Native1
1.1 React Native开发特点2
1.1.1 一次学习,随处编写2
1.1.2 混合开发2
1.1.3 高效的移动应用开发3
1.1.4 高效的移动应用开发调试4
1.1.5 灵活高效的应用热更新4
1.1.6 有效降低移动应用安装包体积5
1.1.7 学习门槛低、开发难度低5
1.1.8 开发软硬件要求低6
1.1.9 使用React Native开发的代价6
1.2 React Native开发环境搭建7
1.2.1 开发环境搭建起点8
1.2.2 Windows操作系统下React Native开发环境搭建8
1.2.3 苹果操作系统下React Native开发环境搭建10
1.2.4 查看与删除使用npm命令安装的软件11
1.3 代码编辑环境搭建11
1.3.1 Visual Studio Code11
1.3.2 Sublime Text 311
1.3.4 WebStorm13
1.4 键盘使用习惯13
1.5 React Dev Tools安装14
第2章 状态机思维与状态机变量17
2.1 初始化项目17
2.1.1 初始化RN*新版项目17
2.1.2 初始化RN旧版本项目18
2.2 运行项目19
2.2.1 使用Android手机调测准备事项19
2.2.2 第*次运行Android平台RN项目19
2.2.3 再次在Android平台运行RN项目21
2.2.4 使用iPhone设备调试注意事项22
2.2.5 首次在iOS平台运行RN项目23
2.2.6 再次在iOS平台运行RN项目27
2.2.7 Sublime Text 3对JSX语法的支持27
2.2.8 修改JSX代码28
2.2.9 启动调试工具30
2.2.10 使用ADM工具调试35
2.3 构建登录页面37
2.4 React Native代码执行逻辑41
2.5 UI框架工作基本机制41
2.5.1 状态机思维42
2.5.2 “冒充常量”的状态机变量44
2.5.3 “无处安放”的状态机变量45
2.5.4 “努力瘦身”的状态机变量46
2.6 React Native组件间通信46
2.7 深入理解UI重新渲染的过程47
2.7.1 合并状态机变量47
2.7.2 判断是否渲染49
2.7.3 强制启动渲染50
2.7.4 渲染过程50
2.7.5 合并状态机变量的*简语法50
2.8 React Native组件的成员变量51
2.9 React Native组件的静态变量、静态函数52
2.10 组件回调函数的绑定52
第3章 页面导航、弹出框及深入理解属xing55
3.1 分离注册组件、组件平台自适配55
3.1.1 分离注册组件55
3.1.2 组件平台自适配55
3.1.3 平台检测56
3.2 导航组件、挂接注册组件56
3.3 挂接注册等待组件58
3.4 Navigator组件61
3.4.1 push与pop61
3.4.2 replace函数62
3.5 React Native中颜色类型的值62
3.6 BackAndroid API63
3.7 属xing确认63
3.8 指定属xing默认值66
3.9 Alert应用程序编程接口66
3.9.1 弹出确认框66
3.9.2 弹出选择框67
3.10 带导航栏的页面导航69
第4章 混合开发基础篇70
4.1 iOS平台混合开发70
4.1.1 与iOS 侧原生代码消息互通71
4.1.2 React Native代码到iOS原生代码的消息72
4.1.3 iOS 原生代码到React Native代码的消息75
4.1.4 与iOS OC原生代码界面切换77
4.1.5 应用初始界面设定77
4.1.6 iOS混合开发中传递的参数类型78
4.1.7 混合开发中的多线程使用78
4.1.8 原生代码实现Promise机制79
4.1.9 跨语言常量82
4.2 Android平台混合开发82
4.2.1 与Android原生代码消息互通83
4.2.2 React Native代码到Android原生代码的消息84
4.2.3 与Android原生代码界面的切换87
4.2.4 Android原生代码到React Native代码的消息91
4.2.5 应用初始界面设定94
4.2.6 传递的参数类型94
4.2.7 回调函数与Promise机制95
4.2.8 监听ActivityResult与Android生命周期事件97
4.2.9 混合开发中的多线程机制98
4.2.10 跨语言常量98
第5章 flexbox布局、View、Image与可触摸组件100
5.1 flexbox布局100
5.1.1 位置及宽、高相关样式键102
5.1.2 决定子组件排列规则的键102
5.1.3 决定组件显示规则的键106
5.1.4 边框、空隙与填充109
5.1.5 zIndex110
5.1.6 组件多样式声明与动态样式声明110
5.2 View组件111
5.2.1 View组件的颜色与边框111
5.2.2 View组件的阴影与其他视觉效果113
5.2.3 View组件的变形114
5.2.4 View组件的回调函数117
5.2.5 View组件的其他属xing119
5.2.6 设备放置状态、根View与onLayout回调函数120
5.2.7 pointerEvents属xing123
5.3 Image组件125
5.3.1 加载网络图片125
5.3.2 加载静态图片资源127
5.3.3 加载资源文件中的图片128
5.3.4 动态加载手机中的图片资源129
5.3.5 Image组件的样式129
5.3.6 Image组件显示特xing131
5.3.7 Image组件的其他属xing134
5.3.8 Image组件的缓存134
5.3.9 尽量使用网络图片135
5.4 可触摸组件135
5.4.1 可触摸组件类型135
5.4.2 TouchableOpacity组件136
5.4.3 TouchableHighlight组件137
5.4.4 其他属xing138
5.5 使用导航栏的导航框架139
5.5.1 导航栏自定义组件的实现140
5.5.2 调用自定义组件142
第6章 Text、TextInput等相关知识145
6.1 Text组件145
6.1.1 样式键设置145
6.1.2 其他属xing147
6.1.3 Text组件的嵌套149
6.1.4 文本显示的阴影效果150
6.1.5 Text居中显示151
6.1.6 在字符串中插入图像153
6.2 Text组件在两个平台上的不同表现155
6.2.1 只指定fontSize,不指定height155
6.2.2 只指定height,不指定fontSize156
6.2.3 fontSize等于height156
6.2.4 height大于fontSize156
6.2.5 边框在两个平台上的不同表现157
6.3 TextInput组件158
6.3.1 TextInput组件样式键158
6.3.2 TextInput组件的属xing158
6.3.3 TextInput组件iOS平台专有属xing160
6.3.4 TextInput组件Android平台专有属xing161
6.3.5 TextInput组件的成员函数161
6.4 TextInput组件在两个平台上的不同表现161
6.4.1 Android平台的输入下画线162
6.4.2 父组件的alignItems键失效162
6.4.3 只指定fontSize,不指定height164
6.4.4 height等于fontSize164
6.4.5 height大于fontSize164
6.4.6 边框在两个平台上的不同表现165
6.5 TextInput组件的生命周期165
6.5.1 获得焦点165
6.5.2 用户输入166
6.5.3 用户按下提交键166
6.5.4 失去焦点166
6.5.5 生命周期中的其他事件167
6.6 Keyboard API、软键盘与键盘事件168
6.6.1 Keyboard API168
6.6.2 键盘事件处理例程168
6.7 组件的引用171
6.7.1 定义组件引用171
6.7.2 得到系统定义的组件引用171
6.7.3 调用组件的公开成员函数172
6.7.4 重新设定组件的属xing172
6.7.5 获得组件的位置174
6.8 跨平台状态栏组件175
6.8.1 StatusBar组件属xing175
6.8.2 StatusBar组件使用示例176
6.8.3 手机状态栏在开发中的处理176
6.9 高度自增长的扩展TextInput组件177
6.10 访问操作系统剪贴板179
第7章 组件生命周期、数据存储及React Native应用实现步骤182
7.1 组件生命周期182
7.1.1 constructor182
7.1.2 componentWillMount182
7.1.3 componentDidMount183
7.1.4 componentWillReceiveProps183
7.1.5 shouldComponentUpdate183
7.1.6 componentWillUpdate184
7.1.7 componentDidUpdate184
7.1.8 componentWillUnmount184
7.2 读取JSON文件185
7.3 数据持久化操作186
7.3.1 写入数据、错误捕捉186
7.3.2 读取数据188
7.3.3 AsyncStorage API存储数据的无序xing190
7.3.4 删除数据191
7.3.5 修改数据192
7.3.6 JSON对象存储192
7.3.7 读取JSON对象193
7.4 数据表操作193
7.5 React Native应用实现步骤、日记例程(上)193
7.5.1 应用原型194
7.5.2 基础组件结构设计195
7.5.3 使用React Native组件搭建静态界面197
7.5.4 React Native组件分层204
7.5.5 实现各组件业务逻辑206
7.5.6 日记例程(上)总结206
第8章 ScrollView和ListView218
8.1 ScrollView组件218
8.1.1 ScrollView组件属xing218
8.1.2 ScrollView组件iOS平台专有属xing219
8.1.3 ScrollView组件Android平台专有属xing220
8.1.4 ScrollView组件的公开成员函数221
8.1.5 RefreshControl组件221
8.1.6 ScrollView组件基本用法222
8.2 ListView组件224
8.2.1 ListView组件的回调函数225
8.2.2 ListView组件的其他属xing226
8.2.3 ListView组件的成员函数226
8.3 简单的列表226
8.3.1 准备列表的数据源227
8.3.2 声明状态机变量227
8.3.3 将数据源中的数据复制到DataSource中228
8.3.4 定义如何渲染列表中的每一行228
8.3.5 实现简单的列表229
8.3.6 列表栏的高级处理237
8.4 带分段标志的列表237
8.4.1 准备数据源238
8.4.2 声明状态机变量238
8.4.3 将数据源中的数据复制到DataSource中239
8.4.4 定义如何渲染每个分栏240
8.4.5 定义如何渲染首、尾栏240
8.4.6 列表间隔渲染240
8.4.7 实现带分段标志的列表241
8.4.8 总结241
8.5 日记例程(下)总结241
第9章 等待提示、进度条和Switch242
9.1 ActivityIndicator组件242
9.1.1 ActivityIndicator组件样式设置242
9.1.2 ActivityIndicator其他属xing242
9.1.3 等待提示例程242
9.2 iOS进度条组件243
9.2.1 React Native框架中定时器的使用243
【前言】
预备知识
学习React Native开发需要基础的JavaScript编程知识。我估计有一部分读者可以在某个手机平台使用该平台原生语言进行移动应用开发,但对JavaScript只是有所耳闻。如果是这种情况,不用担心。读者只需要随便找一本JavaScript入门级的书籍(甚至是网上的教学xing网页),阅读关于基础语法的章节,花上一天时间(包括找资料的时间)学习相关知识点,接下来就可以通过本书学习React Native开发了。所需要的知识点有:
(1)JavaScript语法。包括语句、注释、变量、数据类型、数组(注意关联数组,Java、C 的数组中没有这个概念)、对象的基本知识。
(2)操作运算符。这个与Java、C 基本上是一样的,读者快速过一下就行。
(3)条件语句、循环语句、switch语句。这与Java、C 基本上是一样的,读者快速过一下就行了。
(4)函数。JavaScript中函数也是一种变量,知道了这一点,其他与Java、C 基本上是一样的,读者快速过一下就行了。
(5)对象。JavaScript的对象定义、实现比Java、C 宽松很多。读者得稍微适应一下。
这些基本的知识点,大多数与Java或者Objective-C的相关知识点很类似。如果读者有基础,阅读这些知识点*多只需要一天的时间。读者不需要搭建JavaScript的开发环境来练习、巩固这些知识点,因为在React Native的开发环境中编写代码就可以练习这些基本的JavaScript知识点,在React Native学习中就会巩固这些JavaScript基本知识。
React Native在开发中用到了其他JavaScript的高级知识点与ES 6的一些新特xing,但读者不需要马上去学习这些内容。在通过本书学习React Native开发的过程中若需要使用JavaScript高级知识点,会指出在附录A的什么位置讲解了这些高级知识点,便于读者快速查看。附录A不是JavaScript知识点的全面讲解,只是让读者对React Native开发中需要使用到的JavaScript知识点有足够理解以进行React Native开发。
相关下载地址
笔者希望读者在阅读本书时,能在理解的基础上将例程代码输入到电脑中。输入的过程是一个消化吸收的过程。输入完成后,运行代码,并且按照提示或者针对自己有疑虑的地方进行修改,以便深入理解各个知识点。
正因为如此,本书前面章节中那些短小精悍的例程并没有附在一张光盘上,或者在网上提供下载地址,而是需要读者自己手动输入电脑。
本书还有一些不需要读者手动输入的代码,笔者在GitHub上提供了一个网址供读者自行下载。网址是:https://github.com/es6rn。
本书结构
本书讨论的React Native开发特xing覆盖了2017年3月2日发布的React Native 0.42.0版本的绝大部分特xing。没有讨论的部分在书末有提及。
首先需要说明的是,本书讨论的知识以跨平台(Android平台与iOS平台)开发为主,书中各章节的绝大部分知识点都是跨平台实现的。只有极小部分是分平台实现的,这一小部分在讨论前都会说明该部分知识适用于哪个平台。
本书的结构是按一个有基本的编程基础知识,刚学习JavaScript基本语法的读者的*佳学习路径来编写的。通过一个个精简的例程,清晰地阐述一个个基本思想。例程尽可能地精简,并且所有例程都是笔者花了大量时间为初学者构思而成的。
本书体例说明
代码与代码说明
本书例程中有大量的代码说明,通过注释的方式与代码同时展示出来。例如:
var IncomingCall = React.createClass({
watcher: null, //用来记录监视器
startFromLeft:true, //用来判断用户*先按下的是*左侧还是*右侧
moveNeedhandle:false, //用来判断监测到的移动事件是否需要处理
注释以粗体字显示以提醒读者注意。读者在自己的开发环境中输入例程时不需要输入注释。
React Native代码中的JSX部分代码不能使用这种注释方式,本书为了统一注释风格还是使用了这种注释方式。读者明白了这一点后,在自己输入代码试验时,请将代码中的注释自行去掉。
注意和提示
注意和提示,是需要提醒读者特别注意的内容。在本书中使用带背景色的字体显示。
致谢
感谢我的父亲阙光金老师与我的母亲袁雪英老师从小到大给我的无私的爱。很抱歉无论我如何努力,也无法回报二老深恩的万分之一。
感谢我的姐姐阙喜戎与姐夫王纯,没有你们的鼎力支持,就没有今天的我。
感谢王汝馨伯父与曾钰伯母,谢谢你们对我的关怀与照顾。
感谢廖建新教授、饶牧老师在我学习工作期间对我的关怀与指导。感谢在我7年北京邮电大学学习期间为我授业解惑的所有老师,谢谢你们!
感谢React Native开发团队,感谢所有参与React Native开发的贡献者。无数移动开发者因为你们无私的奉献而受益。
感谢电子工业出版社郭立总经理、孙学瑛编辑等为审校此书
孔网啦啦啦啦啦纺织女工火锅店第三课
开播时间:09月02日 10:30
即将开播,去预约
直播中,去观看