React Native跨平台开发2017 年终总结

简介:

从2016年开始关注React Native到现在,React Native的每一个版本发布我都会关注一下,虽然最近将重心转移到区块链开发上,这一年里,我还出版了一本《React Native移动开发实战》的书。在过去的一年中React Native经历了十几次的版本迭代,版本也从从v0.40升级到v0.52,总体来说,版本迭代没以前那么频繁,组件也越来越丰富,稳定性也越来越好了,下面就一些新组件,新API进行相关的总结。

React Native年度功能

首先,借用网络上的一张图,一个使用Xmind绘制的React Native功能的图,该图简单明了的介绍了React Native在2017年的一些变化。
这里写图片描述

其发布的版本即频率如下图:
这里写图片描述
可以看到,在这一年中,React Native更新的内容如下:
仅针对 Android: 新特性 218 个、修复 bug 79 个 ;
仅针对 iOS: 新特性 286 个、修复 bug 96 个;
双平台通用: 新特性 608 个、修复 bug 157 个、重大变更 35 个。

如果用图形表示,则如下图所示:
这里写图片描述

版本更新详解

如果要总结下每个版本更新的内容,可以看下面的介绍。

0.42

  • iOS:不再支持 Xcode7.x 编译,升级为 Xcode8.x;
  • Android:移除 RecyclerViewBackedScrollView 组件
  • 通用:WebView 组件新增 injectJavaScript 方法;
  • 通用:为组件的部分属性添加百分比支持;
  • 通用: init 项目时可以添加模板。

0.43

  • 通用:FlatList 正式发布;
  • 通用:样式支持 alignContent 属性;
  • 通用:init 项目时的模板可以自定义了。

0.44

  • 通用:不再支持通过 @provides NameOfModule 导入模块;
  • 通用:将 Navigator 组件标记为过期;
  • iOS:移除 MapViewIOS 组件,建议使用 Airbnb 的 react-native-maps。

0.45

  • 通用:添加支持通过 CameraRoll 组件访问视频。

0.46

  • 通用:引入 ImageBackground 组件。

0.47

  • Android: link 命令支持关联 Kotlin 模块;
  • Android:为 AndroidViewPager 添加 peekEnabled 属性。

0.48

  • iOS:移除 AdSupportIOS 组件。

0.49

  • 通用:将 index.ios.js 与 index.android.js 合并为 index.js;
  • 通用:TextInput 组件添加 autoGrow 属性。

0.51

  • 通用: 组件中不再支持嵌套组件;
  • 通用:添加 SwipeableFlatList 组件(实验性);
  • Android:添加对 Android 8.0 的支持。

0.51

  • 通用:padding,margin,border 等属性支持 RTL 布局方式;

更新内容

新增组件

在这一年里,React Native一个新增了8个组件。大家可以从中文文档获得更多的介绍信息。

  • CheckBox:一个用在React Native上的复选框组件,(目前仅支持Android,未来会支持iOS)
  • ImageBackground:背景图片组件,它是一个容器组件,支持包含其他组件
  • VirtualizedList:FlatList和 SectionList 的底层实现。
  • FlatList:基于VirtualizedList的高性能简单列表组件。
  • SwipeableFlatList:一个带滑动显示更多菜单的FlatList组件;
  • SectionList:基于VirtualizedList的高性能分组(section)列表组件。
  • MaskedViewIOS:可以为组件添加一个透明的遮罩;
  • SafeAreaView:用于包裹其他View,它会自动应用填充布局中不足的一部分,但不包括navigation bars, tab bars, toolbars等视图。

新增API函数

  • AccessibilityInfo:一个用于判断屏幕阅读器是否处于激活状态的API。
  • DeviceInfo:一个类专门提供屏幕尺寸,字体缩放等信息的API。
  • BackHandler:监听设备上的后退按钮事件(Android、Apple TV)。
  • findNodeHandle:用于获取组件的本地节点句柄的API。
  • TVEventHandler: 一个用于接受Apple TV远程事件(如遥控器的事件)的API。
  • YellowBox:通过这个API可以屏蔽指定的警告。

其他新增

  • ViewPropTypes:View 中的 propTypes 被移到 ViewPropTypes中,使用时需要单独导包。
  • takeSnapshot:将 takeSnapshot 方法从 UIManager 移动到ReactNative。

废弃组件及API

随着React Native版本的更新,React Native废弃了一些过时的API和组件。

  • BackAndroid:使用功能更丰富的BackHandler代替;
  • Navigator:使用react-navigation代替;
  • ListView:使用FlatList代替;
  • MapView:使用react-native-maps代替此地图组件;
  • RecyclerViewBackedScrollView:现在直接通过ScrollView即可解决滚动冲突;
  • AdSupportIOS:使用react-native-deprecated-modules或react-native-idfa代替;
  • NavigationExperimental:使用react-navigation代替;
目录
相关文章
|
17天前
|
开发框架 前端开发 JavaScript
探索前端开发中的跨平台框架React Native
本文将介绍前端开发中一种备受关注的跨平台框架React Native,通过比较原生应用与React Native的优缺点,探讨其在实际项目中的应用以及未来发展趋势。
|
17天前
|
开发框架 前端开发 JavaScript
从零开始学习React Native开发
React Native是一种基于React框架的移动端开发框架,使用它可以快速地构建出高性能、原生的移动应用。本文将从零开始,介绍React Native的基础知识和开发流程,帮助读者快速入门React Native开发,并实现一个简单的ToDo应用程序。
|
17天前
|
开发框架 Dart 前端开发
【Flutter前端技术开发专栏】Flutter与React Native的对比与选择
【4月更文挑战第30天】对比 Flutter(Dart,强类型,Google支持,快速热重载,高性能渲染)与 React Native(JavaScript,庞大生态,热重载,依赖原生渲染),文章讨论了开发语言、生态系统、性能、开发体验、学习曲线、社区支持及项目选择因素。两者各有优势,选择取决于项目需求、团队技能和长期维护考虑。参考文献包括官方文档和性能比较文章。
【Flutter前端技术开发专栏】Flutter与React Native的对比与选择
|
10天前
|
前端开发 JavaScript Android开发
使用React Native开发跨平台移动应用的技术详解
【5月更文挑战第22天】本文详述了使用React Native开发跨平台移动应用的技术,该框架由Facebook推出,基于JavaScript,支持iOS和Android。React Native通过JNI/JSI实现JavaScript到原生代码的转换,提供高效性能和原生体验。其优势包括跨平台性、原生体验、开发速度及社区支持。开发流程涉及环境搭建、项目创建、编码、调试与测试,以及构建与发布。注意事项包括性能优化、平台适配、利用第三方库和持续学习。React Native为开发者构建高质量跨平台应用提供了便捷途径,未来潜力无限。
|
17天前
|
前端开发 JavaScript Android开发
跨端技术栈综合考察:深入剖析 UniApp、Flutter、Taro 和 React Native 的优势与限制
跨端技术栈综合考察:深入剖析 UniApp、Flutter、Taro 和 React Native 的优势与限制
|
17天前
|
开发框架 移动开发 前端开发
【Uniapp 专栏】Uniapp 与 React Native 的对比分析
【5月更文挑战第14天】Uniapp和React Native是热门的跨平台移动开发框架。Uniapp以其一套代码多端运行、丰富的组件生态和较低的学习曲线受到青睐,适合快速开发简单应用。React Native基于React,拥有活跃社区和优秀性能,适合复杂应用。React Native在性能上略胜一筹,尤其在需要接近原生体验的场景。Uniapp的官方组件弥补了社区资源不足。选择时需考虑开发效率、性能需求、团队技术栈和社区支持。
【Uniapp 专栏】Uniapp 与 React Native 的对比分析
|
17天前
|
移动开发 前端开发 JavaScript
使用React Native进行跨平台移动开发
【5月更文挑战第13天】React Native是Facebook的跨平台移动开发框架,基于JavaScript和React,允许开发者编写原生应用。它提供跨平台性、原生性能、平缓的学习曲线及丰富的社区支持。开发流程包括安装CLI、创建项目、编写代码、运行调试及测试发布。进阶应用涉及状态管理、性能优化、原生模块集成和自动化测试。React Native降低了开发成本,提升了效率,是移动开发的优选方案。
|
17天前
|
开发框架 前端开发 JavaScript
【专栏】对比分析两种流行的跨平台开发框架——Flutter和React Native,探讨它们的优势、劣势以及适用场景
【4月更文挑战第27天】本文对比分析了Flutter和React Native两大跨平台移动开发框架。Flutter,由Google推出,以其接近原生的性能、快速启动和流畅滚动受青睐,适合高性能和高度定制的项目。React Native,Facebook维护,依赖JavaScript,虽性能受限,但热重载优势和丰富第三方库使其适合快速迭代的项目。两者都在拓展多平台应用,Flutter在桌面和Web,React Native在Windows。选择框架需考虑项目需求、团队技能和性能效率平衡。
|
17天前
|
Dart 前端开发 JavaScript
《跨平台移动应用开发探索:Flutter vs React Native》
在移动应用开发领域,跨平台技术日益成熟,Flutter和React Native作为两大主流框架备受关注。本文将对比Flutter和React Native在性能、开发体验、生态系统等方面的优劣,并探讨它们在不同场景下的适用性,以帮助开发者选择最适合自己项目的技术方案。
|
17天前
|
缓存 前端开发 Android开发
React Native
React Native
16 6