ReactNative跨平台移动应用开发 封面

ReactNative跨平台移动应用开发

评分 3.6
字数
13.6万字
章节数
373
ISBN
9787121287077

标签

内容简介

ReactNative是Facebook公司最新推出的,强大的、开源的跨平台移动应用开发框架,它能大幅减少跨平台移动应用开发的工作量,并且代码结构清晰、简单易懂。同时ReactNative框架采用模块化结构,使应用版本的更新迭代非常简单。随着它的日趋成熟,ReactNative必然会成为移动应用开发的主流技术。本书由浅入深、系统地介绍了使用ReactNative框架跨平台开发所需要用到的知识。本书每一章都专注于阐述某一方面的知识,配合若干个原创的、精小的例程,能让读者系统、快速地掌握该方面知识。本书是按照有基本的编程基础知识,刚学习JavaScript基本语法的读者最佳学习路径来编写的。有一定基础的开发人员也可以将本书作为ReactNative开发的“字典”来使用,在开发时可以快速查找相关知识点的细节。

编辑推荐

阙喜涛的《React Native跨平台移动应用开发》是一部聚焦于利用React Native框架进行高效移动应用开发的实用指南。本书系统性地阐述了React Native的核心概念,开发环境搭建,基础组件与API使用,以及性能优化和原生模块集成等进阶话题。通过清晰的代码示例和项目实践,读者能够逐步掌握使用JavaScript和React构建同时运行于iOS和Android平台的应用。作者的叙述风格偏向技术实践,注重解决开发中的具体问题,适合有一定前端基础的开发者深入学习。从内容结构看,本书兼顾了入门引导与深度探索,尤其在状态管理,导航,网络请求和调试等方面提供了详细指导,有助于读者构建稳健的跨平台应用。虽然出版时间较早,部分内容可能需结合最新文档参考,但其核心原理和工程思路仍具价值,可作为React Native技术栈的系统学习资料或案头参考。

适合谁读

适合

  • 具备JavaScript和React基础,希望进军移动应用开发的前端工程师
  • 需要快速开发同时支持iOS和Android的应用,且追求开发效率的团队或个人
  • 已有原生开发经验,希望了解跨平台框架以拓展技术视野的移动开发者
  • 计算机相关专业学生或自学者,寻求系统学习React Native的实践型教材

不适合

  • 完全无编程基础,希望零门槛入门移动开发的初学者
  • 专注于单一平台深度优化或需要调用大量平台特有高级功能的开发者

阅读建议

  1. 阅读时建议同步搭建开发环境,跟随书中示例动手实践,以加深理解
  2. 可结合官方文档和社区资源,补充学习本书出版后React Native的更新内容
  3. 重点阅读关于性能调优和原生集成的章节,这些是构建高质量应用的关键

出版社简介

电子工业出版社 中国 · 成立于 1982 年

电子工业出版社是一家以电子信息及相关领域为出版特色的综合性出版社。从库内三千余种图书来看,其出版方向覆盖编程设计、人工智能、计算机综合、财经、摄影与社科等门类,既关注技术前沿,也兼顾大众阅读。代表图书包括《因子投资:方法与实践》《x86汇编语言:从实模式到保护模式》《RISC-V开放架构设计之道》《人工智能:语音识别理解与实践》《相控阵雷达技术》《雷达目标特性》及《100个Go语言典型错误》等,多围绕技术方法与工程实践展开。作者资源方面,有石川、李忠、王晓波、大卫·帕特森、安德鲁·沃特曼、余子濠等中外作者。受公开资料所限,暂不展开更多出版特色。

目录

  1. 版权信息
  2. 前言
  3. 第1章 React Native
  4. 1.1 React Native开发特点
  5. 1.1.1 一次学习,随处编写
  6. 1.1.2 混合开发
  7. 1.1.3 高效的UI开发
  8. 1.1.4 高效的UI调试
  9. 1.1.5 学习门槛低、开发难度低
  10. 1.1.6 开发软硬件要求低
  11. 1.1.7 使用React Native开发的代价
  12. 1.1.8 为什么React Native尚未流行
  13. 1.2 React Native开发环境搭建
  14. 1.2.1 开发环境搭建起点
  15. 1.2.2 Windows操作系统下React Native开发环境搭建
  16. 1.2.3 苹果操作系统下React Native开发环境搭建
  17. 1.2.4 查看与删除使用npm命令安装的软件
  18. 1.3 代码编辑环境搭建
  19. 1.3.1 Sublime Text3
  20. 1.3.2 开发用插件
  21. 1.3.3 Sublime界面风格选择
  22. 1.3.4 键盘使用习惯
  23. 1.4 React Dev tool安装
  24. 第2章 状态机思维与状态机变量
  25. 2.1 初始化项目
  26. 2.2 运行项目
  27. 2.2.1 使用Android手机进行调测
  28. 2.2.2 使用iPhone手机或模拟器进行调测
  29. 2.2.3 修改JSX代码
  30. 2.2.4 ES6语法与ES5语法
  31. 2.2.5 启动调试工具
  32. 2.3 构建注册页面
  33. 2.4 React Native代码执行逻辑
  34. 2.5 UI框架工作基本机制
  35. 2.5.1 状态机思维
  36. 2.5.2 “冒充常量”的状态机变量
  37. 2.5.3 “无处安放”的状态机变量
  38. 2.5.4 “努力瘦身”的状态机变量
  39. 2.6 React Native组件间通信
  40. 2.7 深入理解UI重新渲染的过程
  41. 2.7.1 合并状态机变量
  42. 2.7.2 判断是否渲染
  43. 2.7.3 替换状态机变量
  44. 2.7.4 强制启动渲染
  45. 2.7.5 渲染过程
  46. 2.7.6 合并状态机变量的最简语法
  47. 2.8 React Native组件的成员变量
  48. 2.9 React Native组件的静态变量、静态函数
  49. 第3章 页面导航、弹出框及深入理解属性
  50. 3.1 分离注册组件、组件平台自适配
  51. 3.1.1 分离注册组件
  52. 3.1.2 组件平台自适配
  53. 3.1.3 平台检测
  54. 3.2 导航组件、挂接注册组件
  55. 3.3 挂接注册等待组件
  56. 3.4 Navigator组件工作机制
  57. 3.4.1 push与pop
  58. 3.4.2 replace函数
  59. 3.5 自定义组件
  60. 3.5.1 “弹出一切框”的实现
  61. 3.5.2 React Native中颜色类型的值
  62. 3.5.3 挂接自定义组件
  63. 3.6 BackAndroid API的bug与解决办法
  64. 3.7 属性确认
  65. 3.8 指定属性默认值
  66. 3.9 Alert应用程序编程接口
  67. 3.9.1 弹出确认框
  68. 3.9.2 弹出选择框
  69. 3.10 带导航栏的页面导航
  70. 第4章 混合开发基础篇
  71. 4.1 iOS平台混合开发
  72. 4.1.1 与iOS侧原生代码消息互通
  73. 4.1.2 React Native代码到iOS原生代码的消息
  74. 4.1.3 iOS原生代码到React Native代码的消息
  75. 4.1.4 与iOS OC原生代码界面的切换
  76. 4.1.5 应用初始界面设定
  77. 4.1.6 iOS混合开发中传递的参数类型
  78. 4.1.7 混合开发中的多线程使用
  79. 4.1.8 原生代码实现Promise机制
  80. 4.1.9 跨语言常量
  81. 4.2 Android平台混合开发
  82. 4.2.1 与Android原生代码消息互通
  83. 4.2.2 React Native代码到Android原生代码的消息
  84. 4.2.3 与Android原生代码界面的切换
  85. 4.2.4 Android原生代码到React Native代码的消息
  86. 4.2.5 应用初始界面设定
  87. 4.2.6 传递的参数类型
  88. 4.2.7 回调函数与Promise机制
  89. 4.2.8 监听ActivityResult与Android生命周期事件
  90. 4.2.9 混合开发中的多线程机制
  91. 4.2.10 跨语言常量
  92. 第5章 flexbox布局、View、Image与可触摸组件
  93. 5.1 flexbox布局
  94. 5.1.1 位置及宽、高相关样式键
  95. 5.1.2 决定子组件排列规则的键
  96. 5.1.3 决定组件显示规则的键
  97. 5.1.4 边框、空隙与填充
  98. 5.1.5 组件多样式声明与动态样式声明
  99. 5.2 View组件
  100. 5.2.1 View组件的颜色与边框
  101. 5.2.2 View组件的阴影与其他视觉效果
  102. 5.2.3 View组件的变形
  103. 5.2.4 View组件的回调函数
  104. 5.2.5 View组件的其他属性
  105. 5.2.6 设备放置状态、根View与onLayout回调函数
  106. 5.2.7 pointerEvents属性
  107. 5.3 Image组件
  108. 5.3.1 加载网络图片
  109. 5.3.2 加载静态图片资源
  110. 5.3.3 加载资源文件中的图片
  111. 5.3.4 动态加载手机中的图片资源
  112. 5.3.5 Image组件的样式
  113. 5.3.6 Image组件显示特性
  114. 5.3.7 Image组件的其他属性
  115. 5.4 可触摸组件
  116. 5.4.1 可触摸组件类型
  117. 5.4.2 TouchableOpacity组件
  118. 5.4.3 TouchableHighlight组件
  119. 5.4.4 其他属性
  120. 5.5 加深理解三大组件
  121. 5.5.1 使用导航栏的导航框架
  122. 5.5.2 等比放大无丢失显示图片
  123. 5.5.3 宽、高动态变化的组件呈现
  124. 第6章 Text、TextInput等相关知识
  125. 6.1 Text组件
  126. 6.1.1 样式键设置
  127. 6.1.2 其他属性
  128. 6.1.3 Text组件的嵌套
  129. 6.1.4 文本显示的阴影效果
  130. 6.1.5 Text居中显示
  131. 6.1.6 在字符串中插入图像
  132. 6.2 Text组件在两个平台上的不同表现
  133. 6.2.1 只指定fontSize,不指定height
  134. 6.2.2 只指定height,不指定fontSize
  135. 6.2.3 fontSize等于height
  136. 6.2.4 height大于fontSize
  137. 6.2.5 边框在两个平台上的不同表现
  138. 6.3 TextInput组件
  139. 6.3.1 TextInput组件样式键
  140. 6.3.2 TextInput组件的属性
  141. 6.3.3 TextInput组件iOS平台专有属性
  142. 6.3.4 TextInput组件Android平台专有属性
  143. 6.3.5 TextInput组件的成员函数
  144. 6.4 TextInput组件在两个平台上的不同表现
  145. 6.4.1 Android平台的输入下画线
  146. 6.4.2 父组件的alignItems键失效
  147. 6.4.3 只指定fontSize、不指定height
  148. 6.4.4 height等于fontSize
  149. 6.4.5 height大于fontSize
  150. 6.4.6 边框在两个平台上的不同表现
  151. 6.5 TextInput组件的生命周期
  152. 6.5.1 获得焦点
  153. 6.5.2 用户输入
  154. 6.5.3 用户按下提交键
  155. 6.5.4 失去焦点
  156. 6.6 软键盘与键盘事件
  157. 6.7 组件的引用
  158. 6.7.1 定义组件引用
  159. 6.7.2 得到系统定义的组件引用
  160. 6.7.3 调用组件的公开成员函数
  161. 6.7.4 重新设定组件的属性
  162. 6.7.5 获得组件的位置
  163. 6.8 跨平台状态栏组件
  164. 6.8.1 StatusBar组件属性
  165. 6.8.2 StatusBar组件使用示例
  166. 6.8.3 手机状态栏在开发中的处理
  167. 6.8.4 StatusBarIOS API
  168. 6.9 高度自增长的扩展TextInput组件
  169. 6.10 访问操作系统剪贴板
  170. 第7章 组件生命周期、数据存储及React Native应用实现步骤
  171. 7.1 组件生命周期
  172. 7.1.1 getInitialState
  173. 7.1.2 getDefaultProps
  174. 7.1.3 componentWillMount
  175. 7.1.4 componentDidMount
  176. 7.1.5 componentWillReceiveProps
  177. 7.1.6 shouldComponentUpdate
  178. 7.1.7 componentWillUpdate
  179. 7.1.8 componentDidUpdate
  180. 7.1.9 componentWillUnmount
  181. 7.2 读取JSON文件
  182. 7.3 数据持久化操作
  183. 7.3.1 flow语法检查器
  184. 7.3.2 写入数据、错误捕捉
  185. 7.3.3 读取数据
  186. 7.3.4 AsyncStorage API存储数据的无序性
  187. 7.3.5 删除数据
  188. 7.3.6 修改数据
  189. 7.3.7 JSON对象存储
  190. 7.3.8 读取JSON对象
  191. 7.4 数据表操作
  192. 7.5 React Native应用实现步骤、日记例程(上)
  193. 7.5.1 应用原型
  194. 7.5.2 基础组件结构设计
  195. 7.5.3 使用React Native组件搭建静态界面
  196. 7.5.4 React Native组件分层
  197. 7.5.5 实现各组件业务逻辑
  198. 7.5.6 日记例程(上)总结
  199. 第8章 ScrollView和ListView
  200. 8.1 ScrollView组件
  201. 8.1.1 ScrollView组件属性
  202. 8.1.2 ScrollView组件iOS平台专有属性
  203. 8.1.3 ScrollView组件Android平台专有属性
  204. 8.1.4 ScrollView组件的公开成员函数
  205. 8.1.5 RefreshControl组件
  206. 8.1.6 ScrollView组件基本用法
  207. 8.2 ListView组件
  208. 8.2.1 ListView组件的回调函数
  209. 8.2.2 ListView组件的其他属性
  210. 8.2.3 ListView组件的成员函数
  211. 8.3 简单的列表
  212. 8.3.1 准备列表的数据源
  213. 8.3.2 声明状态机变量
  214. 8.3.3 将数据源中的数据拷贝到DataSource中
  215. 8.3.4 定义如何渲染列表中的每一行
  216. 8.3.5 实现简单的列表
  217. 8.3.6 列表栏的高级处理
  218. 8.4 带分段标志的列表
  219. 8.4.1 准备数据源
  220. 8.4.2 声明状态机变量
  221. 8.4.3 将数据源中的数据拷贝到DataSource中
  222. 8.4.4 定义如何渲染每个分栏
  223. 8.4.5 定义如何渲染首、尾栏
  224. 8.4.6 列表间隔渲染
  225. 8.4.7 实现带分段标志的列表
  226. 8.4.8 总结
  227. 8.5 日记例程(下)总结
  228. 第9章 等待提示条、进度条和Switch
  229. 9.1 ProgressBarAndroid组件
  230. 9.1.1 ProgressBarAndroid组件样式设置
  231. 9.1.2 ProgressBarAndroid其他属性
  232. 9.1.3 Android平台等待提示条
  233. 9.1.4 React Native框架中定时器的使用
  234. 9.1.5 Android平台进度条
  235. 9.2 iOS进度条组件
  236. 9.2.1 ProgressViewIOS组件样式设置
  237. 9.2.2 ProgressViewIOS其他属性
  238. 9.2.3 iOS平台进度条
  239. 9.3 iOS平台等待提示条
  240. 9.3.1 ActivityIndicatorIOS组件样式设置
  241. 9.3.2 ActivityIndicatorIOS其他属性
  242. 9.3.3 iOS平台等待提示条例程
  243. 9.4 Switch组件
  244. 9.4.1 Switch组件样式设置
  245. 9.4.2 Switch其他属性
  246. 9.4.3 Switch组件的使用
  247. 第10章 导航组件
  248. 10.1 导航组件的属性
  249. 10.1.1 回调函数
  250. 10.1.2 其他属性
  251. 10.2 导航器
  252. 10.3 NavigationBar
  253. 第11章 手势识别
  254. 11.1 PanResponder API
  255. 11.2 监视器
  256. 11.2.1 指定监视区域
  257. 11.2.2 定义监视器相关变量
  258. 11.2.3 准备监视器的事件处理函数
  259. 11.2.4 建立监视器
  260. 11.2.5 将监视器与监视区域挂接
  261. 11.3 监视事件的生命周期
  262. 11.3.1 单次点击事件的生命周期
  263. 11.3.2 单次点击事件处理
  264. 11.3.3 移动手势事件的生命周期
  265. 11.3.4 监视器异常事件
  266. 11.4 手势识别处理例程
  267. 11.4.1 单点手势——点击、拖动选择百分比参数
  268. 11.4.2 单点手势——带导槽的滑动来电接听或拒接界面
  269. 11.4.3 单点手势——滑动解锁屏幕界面
  270. 11.4.4 单点手势——单点任意方向拉动选择界面
  271. 11.4.5 两点手势
  272. 第12章 网络
  273. 12.1 获取网络状态
  274. 12.1.1 得到当前网络状态
  275. 12.1.2 监听网络状态改变事件
  276. 12.1.3 简单判断是否有网络连接
  277. 12.1.4 判断当前连接是否收费
  278. 12.2 通过HTTP、HTTPS与网络侧交换数据
  279. 12.2.1 发送请求
  280. 12.2.2 接收响应
  281. 12.3 在React Native开发中使用AJAX技术
  282. 第13章 网页浏览器、音视频媒体播放
  283. 13.1 WebView组件样式设置
  284. 13.2 WebView组件其他属性
  285. 13.2.1 非回调函数属性
  286. 13.2.2 回调函数属性
  287. 13.2.3 平台独有属性
  288. 13.2.4 WebView组件成员函数
  289. 13.3 网页浏览器使用例程
  290. 13.3.1 浏览网页例程
  291. 13.3.2 加载本地网页例程
  292. 13.4 音视频媒体播放
  293. 第14章 图片的遍历、存取与显示
  294. 14.1 React Native开发中iOS平台链接库的使用
  295. 14.2 获取手机中所有的图片信息
  296. 14.3 图片信息详解
  297. 14.3.1 Android平台图片信息
  298. 14.3.2 iOS平台图片信息
  299. 14.4 显示从CameraRoll API得到的图片
  300. 14.5 为用户提供图片选择界面
  301. 14.6 图片的保存与读取显示
  302. 14.6.1 保存图片数据
  303. 14.6.2 读取并显示图片
  304. 第15章 选择器、位置相关和应用状态
  305. 15.1 日期、时间选择器
  306. 15.1.1 DatePickerAndroid API
  307. 15.1.2 TimePickerAndroid API
  308. 15.1.3 DatePickerIOS组件
  309. 15.2 Picker组件
  310. 15.2.1 Picker组件的样式设置
  311. 15.2.2 Picker组件的属性
  312. 15.2.3 Picker.Item组件属性
  313. 15.2.4 Picker组件例程
  314. 15.3 PickerIOS
  315. 15.4 MapView组件
  316. 15.4.1 MapView组件样式设置
  317. 15.4.2 MapView组件特有的跨平台属性
  318. 15.4.3 MapView组件例程
  319. 15.5 AppState API
  320. 15.5.1 AppState API用途与用法
  321. 15.5.2 AppState API例程
  322. 15.6 获取地理位置
  323. 15.7 VibrationIOS API
  324. 第16章 使用ES6语法开发
  325. 16.1 React Native组件导入
  326. 16.2 属性声明
  327. 16.3 成员变量声明
  328. 16.4 状态机变量声明
  329. 16.5 回调函数绑定
  330. 16.6 类的静态成员变量与静态成员函数
  331. 第17章 混合开发高级篇
  332. 17.1 使用Objective-C语言创建私有的React Native组件
  333. 17.1.1 增加FLAnimatedImage链接库
  334. 17.1.2 创建视图管理类
  335. 17.1.3 封装开源代码中的视图类
  336. 17.1.4 在React Native侧调用私有组件
  337. 17.1.5 例程运行效果
  338. 17.2 使用Swift语言创建私有的React Native组件
  339. 17.2.1 整合开源项目
  340. 17.2.2 建立组件管理者和桥接头文件
  341. 17.2.3 Objective-C与React Native接口部分
  342. 17.2.4 使用Swift语言实现组件控制
  343. 17.2.5 在React Native侧调用私有组件
  344. 17.2.6 例程运行效果
  345. 17.3 使用Android SDK创建私有的React Native组件
  346. 17.3.1 准备原生代码UI组件
  347. 17.3.2 实现原生UI管理类
  348. 17.3.3 创建原生UI实例
  349. 17.3.4 实现对属性的支持
  350. 17.3.5 建立原生UI包
  351. 17.3.6 注册原生UI管理类
  352. 17.3.7 对应的React Native侧实现
  353. 17.3.8 运行俯视视图例程
  354. 第18章 项目配置、生成发布版本安装包及其他
  355. 18.1 iOS平台项目配置
  356. 18.2 iOS平台应用发布
  357. 18.3 Android平台项目配置
  358. 18.4 Android平台应用生成发布版本安装包
  359. 18.4.1 生成发布密钥
  360. 18.4.2 修改gradle配置文件
  361. 18.4.3 生成发布版本安装包
  362. 18.5 其他组件与API
  363. 18.5.1 动画相关
  364. 18.5.2 其他未讨论的组件与API
  365. 附录A ECMAScript2015语法参考
  366. A.1 解构赋值
  367. A.2 箭头函数
  368. A.3 for in循环语句
  369. A.4 JSX的延展属性(Spread Attributes)
  370. A.5 Promise机制
  371. A.6 数组的map成员函数
  372. A.7 ES6语法中的类与继承
  373. A.8 三元运算符

常见问题

本书需要读者具备哪些前置知识?
建议读者已掌握JavaScript基础语法,并了解React的基本概念,如组件,状态和生命周期。若有简单的移动开发或前端开发经验会更易上手。
书中的代码案例是否完整且易于运行?
本书提供了较为完整的示例代码,侧重于演示核心功能。由于React Native版本迭代,部分代码可能需根据当前环境稍作调整,但整体思路和结构仍具参考意义。
这本书是否涵盖React Native的最新特性?
本书基于出版时的React Native版本编写。鉴于技术快速发展,建议将本书作为基础系统学习资料,并辅以官方文档了解新特性如Hermes引擎,新架构等更新。

读者评论

查询本书

本站为索引目录:「全网查询」由您发起、在您的浏览器中运行,所列入口均指向第三方站点,请自行判断可用性。

作者简介

阙喜涛 作者

阙喜涛,目前公开资料有限,其身份背景、国籍与生卒年等均未见明确记载。从库内收录的作品来看,他专注于移动应用开发技术,著有《React Native跨平台移动应用开发》及其第二版,属于计算机综合与编程设计类图书。这两部作品围绕 React Native 这一跨平台框架展开,面向希望用 JavaScript 构建移动应用的开发者,内容偏重工程实践与开发流程。第二版在第一版基础上修订,说明作者对该技术领域保持持续关注,并根据框架演进更新内容。整体而言,阙喜涛的写作以技术实用为导向,服务于中文读者的学习与开发需求,在同类技术书籍中为读者提供了入门与参考的途径。

同一作者

同类高分