标签
内容简介
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的实践型教材
不适合
- 完全无编程基础,希望零门槛入门移动开发的初学者
- 专注于单一平台深度优化或需要调用大量平台特有高级功能的开发者
阅读建议
- 阅读时建议同步搭建开发环境,跟随书中示例动手实践,以加深理解
- 可结合官方文档和社区资源,补充学习本书出版后React Native的更新内容
- 重点阅读关于性能调优和原生集成的章节,这些是构建高质量应用的关键
出版社简介
电子工业出版社
中国 · 成立于 1982 年
电子工业出版社是一家以电子信息及相关领域为出版特色的综合性出版社。从库内三千余种图书来看,其出版方向覆盖编程设计、人工智能、计算机综合、财经、摄影与社科等门类,既关注技术前沿,也兼顾大众阅读。代表图书包括《因子投资:方法与实践》《x86汇编语言:从实模式到保护模式》《RISC-V开放架构设计之道》《人工智能:语音识别理解与实践》《相控阵雷达技术》《雷达目标特性》及《100个Go语言典型错误》等,多围绕技术方法与工程实践展开。作者资源方面,有石川、李忠、王晓波、大卫·帕特森、安德鲁·沃特曼、余子濠等中外作者。受公开资料所限,暂不展开更多出版特色。
目录
- 版权信息
- 前言
- 第1章 React Native
- 1.1 React Native开发特点
- 1.1.1 一次学习,随处编写
- 1.1.2 混合开发
- 1.1.3 高效的UI开发
- 1.1.4 高效的UI调试
- 1.1.5 学习门槛低、开发难度低
- 1.1.6 开发软硬件要求低
- 1.1.7 使用React Native开发的代价
- 1.1.8 为什么React Native尚未流行
- 1.2 React Native开发环境搭建
- 1.2.1 开发环境搭建起点
- 1.2.2 Windows操作系统下React Native开发环境搭建
- 1.2.3 苹果操作系统下React Native开发环境搭建
- 1.2.4 查看与删除使用npm命令安装的软件
- 1.3 代码编辑环境搭建
- 1.3.1 Sublime Text3
- 1.3.2 开发用插件
- 1.3.3 Sublime界面风格选择
- 1.3.4 键盘使用习惯
- 1.4 React Dev tool安装
- 第2章 状态机思维与状态机变量
- 2.1 初始化项目
- 2.2 运行项目
- 2.2.1 使用Android手机进行调测
- 2.2.2 使用iPhone手机或模拟器进行调测
- 2.2.3 修改JSX代码
- 2.2.4 ES6语法与ES5语法
- 2.2.5 启动调试工具
- 2.3 构建注册页面
- 2.4 React Native代码执行逻辑
- 2.5 UI框架工作基本机制
- 2.5.1 状态机思维
- 2.5.2 “冒充常量”的状态机变量
- 2.5.3 “无处安放”的状态机变量
- 2.5.4 “努力瘦身”的状态机变量
- 2.6 React Native组件间通信
- 2.7 深入理解UI重新渲染的过程
- 2.7.1 合并状态机变量
- 2.7.2 判断是否渲染
- 2.7.3 替换状态机变量
- 2.7.4 强制启动渲染
- 2.7.5 渲染过程
- 2.7.6 合并状态机变量的最简语法
- 2.8 React Native组件的成员变量
- 2.9 React Native组件的静态变量、静态函数
- 第3章 页面导航、弹出框及深入理解属性
- 3.1 分离注册组件、组件平台自适配
- 3.1.1 分离注册组件
- 3.1.2 组件平台自适配
- 3.1.3 平台检测
- 3.2 导航组件、挂接注册组件
- 3.3 挂接注册等待组件
- 3.4 Navigator组件工作机制
- 3.4.1 push与pop
- 3.4.2 replace函数
- 3.5 自定义组件
- 3.5.1 “弹出一切框”的实现
- 3.5.2 React Native中颜色类型的值
- 3.5.3 挂接自定义组件
- 3.6 BackAndroid API的bug与解决办法
- 3.7 属性确认
- 3.8 指定属性默认值
- 3.9 Alert应用程序编程接口
- 3.9.1 弹出确认框
- 3.9.2 弹出选择框
- 3.10 带导航栏的页面导航
- 第4章 混合开发基础篇
- 4.1 iOS平台混合开发
- 4.1.1 与iOS侧原生代码消息互通
- 4.1.2 React Native代码到iOS原生代码的消息
- 4.1.3 iOS原生代码到React Native代码的消息
- 4.1.4 与iOS OC原生代码界面的切换
- 4.1.5 应用初始界面设定
- 4.1.6 iOS混合开发中传递的参数类型
- 4.1.7 混合开发中的多线程使用
- 4.1.8 原生代码实现Promise机制
- 4.1.9 跨语言常量
- 4.2 Android平台混合开发
- 4.2.1 与Android原生代码消息互通
- 4.2.2 React Native代码到Android原生代码的消息
- 4.2.3 与Android原生代码界面的切换
- 4.2.4 Android原生代码到React Native代码的消息
- 4.2.5 应用初始界面设定
- 4.2.6 传递的参数类型
- 4.2.7 回调函数与Promise机制
- 4.2.8 监听ActivityResult与Android生命周期事件
- 4.2.9 混合开发中的多线程机制
- 4.2.10 跨语言常量
- 第5章 flexbox布局、View、Image与可触摸组件
- 5.1 flexbox布局
- 5.1.1 位置及宽、高相关样式键
- 5.1.2 决定子组件排列规则的键
- 5.1.3 决定组件显示规则的键
- 5.1.4 边框、空隙与填充
- 5.1.5 组件多样式声明与动态样式声明
- 5.2 View组件
- 5.2.1 View组件的颜色与边框
- 5.2.2 View组件的阴影与其他视觉效果
- 5.2.3 View组件的变形
- 5.2.4 View组件的回调函数
- 5.2.5 View组件的其他属性
- 5.2.6 设备放置状态、根View与onLayout回调函数
- 5.2.7 pointerEvents属性
- 5.3 Image组件
- 5.3.1 加载网络图片
- 5.3.2 加载静态图片资源
- 5.3.3 加载资源文件中的图片
- 5.3.4 动态加载手机中的图片资源
- 5.3.5 Image组件的样式
- 5.3.6 Image组件显示特性
- 5.3.7 Image组件的其他属性
- 5.4 可触摸组件
- 5.4.1 可触摸组件类型
- 5.4.2 TouchableOpacity组件
- 5.4.3 TouchableHighlight组件
- 5.4.4 其他属性
- 5.5 加深理解三大组件
- 5.5.1 使用导航栏的导航框架
- 5.5.2 等比放大无丢失显示图片
- 5.5.3 宽、高动态变化的组件呈现
- 第6章 Text、TextInput等相关知识
- 6.1 Text组件
- 6.1.1 样式键设置
- 6.1.2 其他属性
- 6.1.3 Text组件的嵌套
- 6.1.4 文本显示的阴影效果
- 6.1.5 Text居中显示
- 6.1.6 在字符串中插入图像
- 6.2 Text组件在两个平台上的不同表现
- 6.2.1 只指定fontSize,不指定height
- 6.2.2 只指定height,不指定fontSize
- 6.2.3 fontSize等于height
- 6.2.4 height大于fontSize
- 6.2.5 边框在两个平台上的不同表现
- 6.3 TextInput组件
- 6.3.1 TextInput组件样式键
- 6.3.2 TextInput组件的属性
- 6.3.3 TextInput组件iOS平台专有属性
- 6.3.4 TextInput组件Android平台专有属性
- 6.3.5 TextInput组件的成员函数
- 6.4 TextInput组件在两个平台上的不同表现
- 6.4.1 Android平台的输入下画线
- 6.4.2 父组件的alignItems键失效
- 6.4.3 只指定fontSize、不指定height
- 6.4.4 height等于fontSize
- 6.4.5 height大于fontSize
- 6.4.6 边框在两个平台上的不同表现
- 6.5 TextInput组件的生命周期
- 6.5.1 获得焦点
- 6.5.2 用户输入
- 6.5.3 用户按下提交键
- 6.5.4 失去焦点
- 6.6 软键盘与键盘事件
- 6.7 组件的引用
- 6.7.1 定义组件引用
- 6.7.2 得到系统定义的组件引用
- 6.7.3 调用组件的公开成员函数
- 6.7.4 重新设定组件的属性
- 6.7.5 获得组件的位置
- 6.8 跨平台状态栏组件
- 6.8.1 StatusBar组件属性
- 6.8.2 StatusBar组件使用示例
- 6.8.3 手机状态栏在开发中的处理
- 6.8.4 StatusBarIOS API
- 6.9 高度自增长的扩展TextInput组件
- 6.10 访问操作系统剪贴板
- 第7章 组件生命周期、数据存储及React Native应用实现步骤
- 7.1 组件生命周期
- 7.1.1 getInitialState
- 7.1.2 getDefaultProps
- 7.1.3 componentWillMount
- 7.1.4 componentDidMount
- 7.1.5 componentWillReceiveProps
- 7.1.6 shouldComponentUpdate
- 7.1.7 componentWillUpdate
- 7.1.8 componentDidUpdate
- 7.1.9 componentWillUnmount
- 7.2 读取JSON文件
- 7.3 数据持久化操作
- 7.3.1 flow语法检查器
- 7.3.2 写入数据、错误捕捉
- 7.3.3 读取数据
- 7.3.4 AsyncStorage API存储数据的无序性
- 7.3.5 删除数据
- 7.3.6 修改数据
- 7.3.7 JSON对象存储
- 7.3.8 读取JSON对象
- 7.4 数据表操作
- 7.5 React Native应用实现步骤、日记例程(上)
- 7.5.1 应用原型
- 7.5.2 基础组件结构设计
- 7.5.3 使用React Native组件搭建静态界面
- 7.5.4 React Native组件分层
- 7.5.5 实现各组件业务逻辑
- 7.5.6 日记例程(上)总结
- 第8章 ScrollView和ListView
- 8.1 ScrollView组件
- 8.1.1 ScrollView组件属性
- 8.1.2 ScrollView组件iOS平台专有属性
- 8.1.3 ScrollView组件Android平台专有属性
- 8.1.4 ScrollView组件的公开成员函数
- 8.1.5 RefreshControl组件
- 8.1.6 ScrollView组件基本用法
- 8.2 ListView组件
- 8.2.1 ListView组件的回调函数
- 8.2.2 ListView组件的其他属性
- 8.2.3 ListView组件的成员函数
- 8.3 简单的列表
- 8.3.1 准备列表的数据源
- 8.3.2 声明状态机变量
- 8.3.3 将数据源中的数据拷贝到DataSource中
- 8.3.4 定义如何渲染列表中的每一行
- 8.3.5 实现简单的列表
- 8.3.6 列表栏的高级处理
- 8.4 带分段标志的列表
- 8.4.1 准备数据源
- 8.4.2 声明状态机变量
- 8.4.3 将数据源中的数据拷贝到DataSource中
- 8.4.4 定义如何渲染每个分栏
- 8.4.5 定义如何渲染首、尾栏
- 8.4.6 列表间隔渲染
- 8.4.7 实现带分段标志的列表
- 8.4.8 总结
- 8.5 日记例程(下)总结
- 第9章 等待提示条、进度条和Switch
- 9.1 ProgressBarAndroid组件
- 9.1.1 ProgressBarAndroid组件样式设置
- 9.1.2 ProgressBarAndroid其他属性
- 9.1.3 Android平台等待提示条
- 9.1.4 React Native框架中定时器的使用
- 9.1.5 Android平台进度条
- 9.2 iOS进度条组件
- 9.2.1 ProgressViewIOS组件样式设置
- 9.2.2 ProgressViewIOS其他属性
- 9.2.3 iOS平台进度条
- 9.3 iOS平台等待提示条
- 9.3.1 ActivityIndicatorIOS组件样式设置
- 9.3.2 ActivityIndicatorIOS其他属性
- 9.3.3 iOS平台等待提示条例程
- 9.4 Switch组件
- 9.4.1 Switch组件样式设置
- 9.4.2 Switch其他属性
- 9.4.3 Switch组件的使用
- 第10章 导航组件
- 10.1 导航组件的属性
- 10.1.1 回调函数
- 10.1.2 其他属性
- 10.2 导航器
- 10.3 NavigationBar
- 第11章 手势识别
- 11.1 PanResponder API
- 11.2 监视器
- 11.2.1 指定监视区域
- 11.2.2 定义监视器相关变量
- 11.2.3 准备监视器的事件处理函数
- 11.2.4 建立监视器
- 11.2.5 将监视器与监视区域挂接
- 11.3 监视事件的生命周期
- 11.3.1 单次点击事件的生命周期
- 11.3.2 单次点击事件处理
- 11.3.3 移动手势事件的生命周期
- 11.3.4 监视器异常事件
- 11.4 手势识别处理例程
- 11.4.1 单点手势——点击、拖动选择百分比参数
- 11.4.2 单点手势——带导槽的滑动来电接听或拒接界面
- 11.4.3 单点手势——滑动解锁屏幕界面
- 11.4.4 单点手势——单点任意方向拉动选择界面
- 11.4.5 两点手势
- 第12章 网络
- 12.1 获取网络状态
- 12.1.1 得到当前网络状态
- 12.1.2 监听网络状态改变事件
- 12.1.3 简单判断是否有网络连接
- 12.1.4 判断当前连接是否收费
- 12.2 通过HTTP、HTTPS与网络侧交换数据
- 12.2.1 发送请求
- 12.2.2 接收响应
- 12.3 在React Native开发中使用AJAX技术
- 第13章 网页浏览器、音视频媒体播放
- 13.1 WebView组件样式设置
- 13.2 WebView组件其他属性
- 13.2.1 非回调函数属性
- 13.2.2 回调函数属性
- 13.2.3 平台独有属性
- 13.2.4 WebView组件成员函数
- 13.3 网页浏览器使用例程
- 13.3.1 浏览网页例程
- 13.3.2 加载本地网页例程
- 13.4 音视频媒体播放
- 第14章 图片的遍历、存取与显示
- 14.1 React Native开发中iOS平台链接库的使用
- 14.2 获取手机中所有的图片信息
- 14.3 图片信息详解
- 14.3.1 Android平台图片信息
- 14.3.2 iOS平台图片信息
- 14.4 显示从CameraRoll API得到的图片
- 14.5 为用户提供图片选择界面
- 14.6 图片的保存与读取显示
- 14.6.1 保存图片数据
- 14.6.2 读取并显示图片
- 第15章 选择器、位置相关和应用状态
- 15.1 日期、时间选择器
- 15.1.1 DatePickerAndroid API
- 15.1.2 TimePickerAndroid API
- 15.1.3 DatePickerIOS组件
- 15.2 Picker组件
- 15.2.1 Picker组件的样式设置
- 15.2.2 Picker组件的属性
- 15.2.3 Picker.Item组件属性
- 15.2.4 Picker组件例程
- 15.3 PickerIOS
- 15.4 MapView组件
- 15.4.1 MapView组件样式设置
- 15.4.2 MapView组件特有的跨平台属性
- 15.4.3 MapView组件例程
- 15.5 AppState API
- 15.5.1 AppState API用途与用法
- 15.5.2 AppState API例程
- 15.6 获取地理位置
- 15.7 VibrationIOS API
- 第16章 使用ES6语法开发
- 16.1 React Native组件导入
- 16.2 属性声明
- 16.3 成员变量声明
- 16.4 状态机变量声明
- 16.5 回调函数绑定
- 16.6 类的静态成员变量与静态成员函数
- 第17章 混合开发高级篇
- 17.1 使用Objective-C语言创建私有的React Native组件
- 17.1.1 增加FLAnimatedImage链接库
- 17.1.2 创建视图管理类
- 17.1.3 封装开源代码中的视图类
- 17.1.4 在React Native侧调用私有组件
- 17.1.5 例程运行效果
- 17.2 使用Swift语言创建私有的React Native组件
- 17.2.1 整合开源项目
- 17.2.2 建立组件管理者和桥接头文件
- 17.2.3 Objective-C与React Native接口部分
- 17.2.4 使用Swift语言实现组件控制
- 17.2.5 在React Native侧调用私有组件
- 17.2.6 例程运行效果
- 17.3 使用Android SDK创建私有的React Native组件
- 17.3.1 准备原生代码UI组件
- 17.3.2 实现原生UI管理类
- 17.3.3 创建原生UI实例
- 17.3.4 实现对属性的支持
- 17.3.5 建立原生UI包
- 17.3.6 注册原生UI管理类
- 17.3.7 对应的React Native侧实现
- 17.3.8 运行俯视视图例程
- 第18章 项目配置、生成发布版本安装包及其他
- 18.1 iOS平台项目配置
- 18.2 iOS平台应用发布
- 18.3 Android平台项目配置
- 18.4 Android平台应用生成发布版本安装包
- 18.4.1 生成发布密钥
- 18.4.2 修改gradle配置文件
- 18.4.3 生成发布版本安装包
- 18.5 其他组件与API
- 18.5.1 动画相关
- 18.5.2 其他未讨论的组件与API
- 附录A ECMAScript2015语法参考
- A.1 解构赋值
- A.2 箭头函数
- A.3 for in循环语句
- A.4 JSX的延展属性(Spread Attributes)
- A.5 Promise机制
- A.6 数组的map成员函数
- A.7 ES6语法中的类与继承
- A.8 三元运算符
常见问题
本书需要读者具备哪些前置知识?
建议读者已掌握JavaScript基础语法,并了解React的基本概念,如组件,状态和生命周期。若有简单的移动开发或前端开发经验会更易上手。
书中的代码案例是否完整且易于运行?
本书提供了较为完整的示例代码,侧重于演示核心功能。由于React Native版本迭代,部分代码可能需根据当前环境稍作调整,但整体思路和结构仍具参考意义。
这本书是否涵盖React Native的最新特性?
本书基于出版时的React Native版本编写。鉴于技术快速发展,建议将本书作为基础系统学习资料,并辅以官方文档了解新特性如Hermes引擎,新架构等更新。
读者评论
查询本书
本站为索引目录:「全网查询」由您发起、在您的浏览器中运行,所列入口均指向第三方站点,请自行判断可用性。
作者简介
阙喜涛
作者
阙喜涛,目前公开资料有限,其身份背景、国籍与生卒年等均未见明确记载。从库内收录的作品来看,他专注于移动应用开发技术,著有《React Native跨平台移动应用开发》及其第二版,属于计算机综合与编程设计类图书。这两部作品围绕 React Native 这一跨平台框架展开,面向希望用 JavaScript 构建移动应用的开发者,内容偏重工程实践与开发流程。第二版在第一版基础上修订,说明作者对该技术领域保持持续关注,并根据框架演进更新内容。整体而言,阙喜涛的写作以技术实用为导向,服务于中文读者的学习与开发需求,在同类技术书籍中为读者提供了入门与参考的途径。