React Native 的 2017 年終總結

  • 本文為 Marno 原創(chuàng),轉載必須保留出處!
  • 公眾號【 aMarno 】,關注后回復 RN 加入交流群
  • React Native 優(yōu)秀開源項目大全:http://www.marno.cn

又到了寫年終總結的時候,但今年不想寫我的事情,而是想總結一下 React Native 的這一年。知道有很多讀者是因為 RN 才關注我的,特別感謝大家的關注。在過去一年,我堅持只發(fā)原創(chuàng)文章,其中大部分是關于 RN 的。但因工作變動,在 2017 下半年里,RN 不再是我主要研究的方向了,所以更新速度就慢了??蓪懽魇俏业膫€人愛好,我會堅持下去,也會在 2018 年和大家分享更多優(yōu)質的原創(chuàng)內容。

2017這一年,
React Native 共更新 92 個版本。
平均 7.67 個/月,1.77 個/周。
其中正式版共 12 個(有 release 日志)
平均 1.0 個/月,在按照 fb 的規(guī)劃進行
17 年的第一個版本是 0.40.0,
最后一個版本是 0.52.0-rc0。
7 月份發(fā)布次數最多,共 14 個版本。
1 月和 12 月發(fā)布最少,均為 3 個版本。

每個月發(fā)布版本的數量▲

在這 92 個版中,更新的內容有:
僅針對 Android: 新特性 218 個、修復 bug 79
僅針對 iOS: 新特性 286 個、修復 bug 96
雙平臺通用:新特性 608 個、修復 bug 157 個、重大變更 35

現在 RN 更新的速度已經比剛出來那會兒慢了,但是一個月一個正式版,還是讓許多使用 RN 的開發(fā)者感到苦惱。因為經常在更新后項目就跑不起來了,所以很多團隊都選擇了不更新,但也就沒法用最新的 API 了。我覺得最好進行跨版本升級,因為有些版本之間的差別不是很大,我們可以忽略掉。但跨度也不要太大,不然出了問題都不知道去哪里找原因,隔個兩到三個版本升級比較合適。

每個版本更新內容統計▲

更新了這么內容,有哪些是比較重要的呢?下面我們一起來回顧下,今年 RN 添加了哪些實用的新功能(可能會漏,歡迎留言補充)。

0.42 版本

  • iOS:不再支持 Xcode7.x 編譯,升級為 Xcode8.x
  • Android:移除 RecyclerViewBackedScrollView 組件
  • 通用:WebView 組件新增 injectJavaScript 方法
  • 通用:為組件的部分屬性添加百分比支持
  • 通用: init 項目時可以添加模板

0.43 版本

  • 通用:FlatList 正式發(fā)布
  • 通用:樣式支持 alignContent 屬性
  • 通用:init 項目時的模板可以自定義了

0.44 版本

  • 通用:不再支持通過 @provides NameOfModule 導入模塊
  • 通用:將 Navigator 組件標記為過期
  • iOS:移除 MapViewIOS 組件,建議使用 Airbnbreact-native-maps

0.45 版本

  • 通用:添加支持通過 CameraRoll 組件訪問視頻

0.46 版本

  • 通用:引入 ImageBackground 組件

0.47 版本

  • Android: link 命令支持關聯 Kotlin 模塊
  • Android:為 AndroidViewPager 添加 peekEnabled 屬性

0.48 版本

  • iOS:移除 AdSupportIOS 組件

0.49 版本

  • 通用:將 index.ios.jsindex.android.js 合并為 index.js
  • 通用:TextInput 組件添加 autoGrow 屬性

0.50 版本

  • 通用:<Image> 組件中不再支持嵌套組件
  • 通用:添加 SwipeableFlatList 組件(實驗性)
  • 通用:引入 <SafeAreaView> 組件
  • Android:添加對 Android 8.0 的支持

0.51 版本

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

當然還有很多其他更新,比如執(zhí)行效率上的提升、代碼結構的優(yōu)化等,我就不一一列舉了。要問 RN 有沒有比去年更好用?確實還是更好用了一些,不過我總覺得今年的更新不是特別給力,不知道大家有沒有這樣感覺。但至少我們還是可以看出, Facebook 在努力讓 RN 變得更好。

這一年里,我一共翻譯了 7次更新日志,大概統計了下這些日志在各渠道的閱讀總數,至少應該在 70K 以上了,作為比較枯燥的“更新日志”還能有這么多人看,我已經很是欣慰了。有想了解更多更新內容的朋友,可以去看下每個版本對應的中文更新日志。

附上之前幾次翻譯的日志鏈接:

翻譯這些內容的過程并不輕松,為了盡可能準確的還原英文原意,幾乎每一條更新日志的詳情我都會去仔細看,只有自己理解了以后才會去翻譯。盡管這件事占用了我大量的個人時間,而且可能最后看的人也并不是很多,但我覺得既然做了,就力求做到準確,不然可能會讓看的人比較困惑。

一整年過去了,RN 的版本從 0.40.0 到更新到了 0.52.0-rc0,如果保持這樣的節(jié)奏更新下去,那我們至少也得在 4 年后,也就是 2021 年,才能等到 RN 1.0.0 的版本了。不過前提是 RN 還能維護到那個時候去,畢竟現在技術更新換代的節(jié)奏越來越快了。像微信小程序,支付寶小程序這樣的技術,都在擠壓著 RN 的生存空間。加上 RN 自身實現機制的約束,導致它不可能承載過于復雜的業(yè)務,那些追求流暢用戶體驗的產品,依然還是會選擇將原生開發(fā)作為業(yè)務的主要載體。至于以后 RN 會怎么發(fā)展,我們能做的也只是獻上美好的祝福了。

最后做個小小的統計,看下現在哪個版本的 RN 用的人最多?大家可以在留言區(qū)回復。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容