内容简介:一年一度的 React Native 年终总结终于来了,其实这样的文章几乎是没有什么技术含量的,更像是一个脏活累活,没什么人愿意干的活。简单来说,就是把 2018 年所有的更新日志看一遍,然后统计出数据,并且挑出一些比较重要的更新内容罗列出来。React Native 共更新了比
- 本文为 Marno 原创,转载必须注明出处!
- 公众号【 aMarno 】,关注后回复 RN 加入交流群
- 关注公众号,快来加入我们的开发阵营吧!
一年一度的 React Native 年终总结终于来了,其实这样的文章几乎是没有什么技术含量的,更像是一个脏活累活,没什么人愿意干的活。简单来说,就是把 2018 年所有的更新日志看一遍,然后统计出数据,并且挑出一些比较重要的更新内容罗列出来。
一些数据
2018 年这一年:
React Native 共更新了 52 个版本,
比 2017 年的 92 个减少了近一半, 平均 4.33 个/月, 1.0 个/周。
其中正式版共 6 个(有 release 日志),
平均 0.5 个/月,比 Fb 计划要少。
18 年第一个版本是 0.52.0 ,
最后一个版本是 0.57.8 。
2 月发布版本最多,共 9 个,
5 月发布最少,为 0 个。
在这 52 个版本中,更新内容有:
仅针对 Android:
- 新特性:20 个
- 修复 bug:88 个
- 修改:44 个
- 移除:6 个
仅针对 iOS:
- 新特性:25 个
- 修复 bug:94 个
- 修改:25 个
- 移除:7 个
双平台通用:
- 新特性:36 个
- 修复 bug:107 个
- 修改:155 个
- 移除:16 个
以及其他级别较低的修改有:127 个
关键更新内容
0.52 版本
- CaemraRoll 新增 deletePhotos 方法
- DataPickerIOS 增加 locale 属性
0.53 版本
- TextInput 移除 autoGrow 属性
0.54 版本
- 支持在 node_module 中使用动态依赖
- VirtualizedList 添加 invertStickyHeaders 属性
- 布局添加 space-evenly 属性
- bundle command 增加 --minify 命令
- VR 平台支持 ScrollView 组件
0.55 版本
- 支持在 Android TV 设备上使用 RN
- useNativeDriver 属性支持动态设置的 Animated.Values
- TextInput 增加 contextMenuHidden 属性
- Android:Text 和 TextInput 支持 letterSpacing 设置字间距
- iOS:新增 InputAccessoryView 组件
- iOS:新增 --simulator 命令指定程序运行的虚拟机
0.56 版本(今年升级幅度最大)
?.
0.57 版本
- FlatList 和 SectionList 支持 Animated
- 给 VirtualizedList 和 FlatList 新增 ListHeaderComponentStyle 及 ListFooterComponentStyle 属性
- ScrollView 添加 snapToOffsets 属性
- 移除 ScrollView.propTypes,使用 flow 代替
- CLI:ram-bundle 代替 unbundle
- iOS:通过 useWebKit 属性控制是否使用 WKWebView
- Android:增加支持 overflow 属性
0.57.1 版本
- WebView 增加 allowFileAccess 属性
0.57.4 版本
- 从 ListView 中移除 TimerMixin
- Android:Text 组件支持 textTransform 属性
- iOS:run-ios 命令支持指定 iOS 版本
关于 2019 年的重构
去年写总结的时候,预估按照当时的更新频率,至少要 2021 年才能等到 1.0.0 正式版,但是今天发现,可能当时还是太乐观了。今年更新的频率直接比去年低了近一半,不知道是 Facebook 在刻意控制更新的速度,减少投入的人力资源。还是确实不知道该怎么更新下去了,就只好缝三年补三年,缝缝补补又三年。
不过我相信应该是前者,因为 Fb 官方宣布将在 2019 年对 RN 进行大量重构,所以就减少了版本更新的频率,将大部分的精力集中到代码的重构上。根据发布的消息来看,重构工作主要体现在以下三个方面:
- Fabric :重构 UI 层,提高 UI 绘制性能
- JSI :可以使用其他 JS VM 代替 JavaScriptCore
- TurboModules :通过 JSI 重构 NativeModule
目前重构已经初见成效,其中 Fabric 已经在广泛使用,还有 JSI 以及 TurboModules 也会在 2019 年得到更多的优化。官方还表示,重构更多的是在底层进行改动,不会对公开的 API 进行太多的调整,开发者不需要做太多的工作,就能升级到最新的版本。
除了上述几个核心的内容外,还有个不得不提到的变化。Fb 会将越来越多的非核心组件,从 RN 主仓库移到 react-native-community 的仓库中进行维护迭代,比如:react-native-webview。因为他们发现近两年中大部分的 Breaking 更新,几乎都是来自于组件的变化。所以将一部分组件抽离之后,不仅能提高核心库的稳定性,还能在社区的帮助下,让组件进行更快速的迭代。
还有,官方在博客中也反复提到,以上这些变化,都会有助于将 RN 更快的推向 1.0.0 版本,不知道这是不是在暗示着什么呢?如果你想知道更多关于重构的内容,可以参考文末的链接(有些可能需要梯子)。
总结
2018 年对于 React Native 来说,算是“腹背受敌”的一年。首先是有公司宣布不再使用 RN,其中不乏大名鼎鼎的 Airbnb。其次还受到新的跨平台技术的挑战,比如最近热度较高的 Flutter,而处在技术行业这样一个“喜新厌旧”的领域,RN 确实应该感受到了一些“威胁”。
但不论如何,作为一个已经发展了这么久的技术来说,我们还是真心希望如官方所言,能在2019 年见到 RN 焕发出新的活力,给我们带来更多惊喜!说不定,19 年真的就能看到 1.0.0 的正式版了!
最后做个小小的统计,看下用哪个版本 RN 的人最多?可以留言回复!
参考文档:(链接需要复制打开)
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
TCP/IP网络管理
亨特 / 电子工业 / 2006年3月1日 / 79.00元
本书是一本架设与维护TCP/IP网络的完整指南,无论你是在职的系统管理员,还是需要访问Internet的家用系统用户,都可从本书获得帮助。本书还讨论了高级路由协议(RIPv2、OSPF、BGP),以及实现这些协议的gated软件。对于各种重要的网络服务,如DNS,Apache,sendmail,Samba,PPP和DHCP,本书都提供了配置范例,以及相关的软件包与工具的语法参考。一起来看看 《TCP/IP网络管理》 这本书的介绍吧!