React Native 的 2018 年终总结

  • 本文为 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 版本(今年升级幅度最大)

  • 升级到 Babel 7
  • Node 环境最低要求 Node 8
  • iOS 平台最低要求 iOS 9
  • Xcode 最低要求 Xcode 9
  • Android 默认使用 SDK26 编译
  • WebView 默认不支持加载 file:// 路径
  • 支持 ?. 链式操作符
  • flexWrap 属性支持 wrap-reverse 模式
  • templates(样板工程)支持 devDependcies 配置
  • iOS:Text 组件新增 textTransform 属性
  • Android:Image 组件支持 defaultSource 属性
  • 大量组件从 PropTypes 迁移到使用 Flow type
  • TextInput 移除 focusTextInput 和 blurTextInput 属性,使用 TextInput.State 代替

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

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

  1. 《React Native 的 2017 年终总结》

  2. 《2018 年所有英文更新日志汇总》

  3. 《State of React Native 2018》

  4. 《Open Source Roadmap》

  5. 《React Native New Architecture》

  6. 《What is Fabric》

  7. 《Discussion about Fabric》

  8. 《Discussion about TurboModule》

  9. 《Discussion about Lean Core》

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,839评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,543评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,116评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,371评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,384评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,111评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,416评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,053评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,558评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,007评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,117评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,756评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,324评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,315评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,539评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,578评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,877评论 2 345

推荐阅读更多精彩内容