React Native 的 2018 年终总结

栏目: 服务器 · 发布时间: 5年前

内容简介:一年一度的 React Native 年终总结终于来了,其实这样的文章几乎是没有什么技术含量的,更像是一个脏活累活,没什么人愿意干的活。简单来说,就是把 2018 年所有的更新日志看一遍,然后统计出数据,并且挑出一些比较重要的更新内容罗列出来。React Native 共更新了比
  • 本文为 Marno 原创,转载必须注明出处!
  • 公众号【 aMarno 】,关注后回复 RN 加入交流群
  • 关注公众号,快来加入我们的开发阵营吧!
React Native 的 2018 年终总结

一年一度的 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 个。

React Native 的 2018 年终总结

在这 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 的人最多?可以留言回复!

参考文档:(链接需要复制打开)


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

信息烟尘

信息烟尘

戴维·申克 / 黄锫坚 / 江西教育出版社 / 2002 / 14.50元

今天,我们被大量的信息淹没了:传真、电子邮件、各种新闻、消息和铺天盖地的广告,正如人们以前预示的那样:出现了一个令人鼓舞的信息时代,媒体专家兼网络评论员戴维·申克透过这些繁荣的表象,揭示了大量的无用的信息对我们造成的干扰,或者说,“信息烟尘”对我们个人的健康(包括精神上的和肉体上的)及对社会造成的极大危害。这《信息烟尘:在信息爆炸中求生存》宣告了“信息时代”神话的破灭。一起来看看 《信息烟尘》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具