宣布 React Native 0.68
大家好!今天我們宣布 React Native 0.68.0 版本發布,其中包含可選擇加入的全新 React Native 架構、錯誤修正及更多內容。
章節
0.68 的重點
Andrei Calazans 協助我們選出 0.68 版帶來的最相關變更
重大變更和版本跳升
此版本帶來一些重大變更
- React Native 已更新至最新的 LTS Node 16。由於我們在 CI 上測試 LTS 和先前的 LTS,因此這項變更表示現在使用者必須使用 Node >= 14 版本。
- Android Gradle Plugin 已更新至 7.0.1,強制 Android 建置使用 JDK 11,因此請務必升級您的組態(我們建議您 Intel 和 M1 Mac 都使用
zulu11
JDK 版本) - 從 iOS 上的
RCTBundleURLProvider
API 移除fallbackResource
。可以安全地從方法呼叫中移除此參數,而無需替換。
工具也已更新 - 以下是主要的版本跳升
- @react-native-community/cli 至 7.0.3
- Metro 至 0.67
- react-devtools-core 相依性至 4.23.0
- Flipper 至 0.125.0
- react-native-codegen 至 0.0.9
- Kotlin 至 1.6.10
- Soloader 至 0.10.3
- Gradle 至 7.3
- Android 編譯和目標 SDK 至 31
此外,感謝 Nicola Corti 的此提交,Android Gradle Plugin 將自行下載預設版本的 NDK,因此您不必再個別指定和安裝。
其他改進
此版本中還有許多其他變更和修正,但以下是您可能會感興趣的一小部分
- Gijs Weterings 修正了將 testID 轉發至 RCTModalHostView,以便更輕鬆地進行模組的 E2E 定向。
- Liam Jones 修正了呼叫
console.error
導致 RedBox 與 LogBox 一起出現的問題。 - Sam Kline 修正了在 Android 開發模式中 BundleDownloader 失敗後出現空白畫面的問題。
- Jeffrey Hyer 修正了 KeyboardAvoidingView 無法與
onLayout
屬性搭配運作的問題。
如果您有興趣了解完整的變更清單,可以在此連結的變更記錄中閱讀。
致謝
此版本包含 68 位貢獻者的 614 次提交!感謝大家!
我們還要感謝發布測試人員和支援者,他們協助我們在穩定的 0.68.0 版本發布之前發現回歸錯誤:您們對此版本的成功至關重要!
如果您、您的應用程式或您的公司有興趣加入「發布測試人員」計畫,可以在此註冊。
選擇加入全新架構
如上簡要提及,React Native 0.68 是第一個選擇加入支援 Fabric Renderer 和 TurboModule 系統的版本。這標誌著全新 React Native 架構推出的重要里程碑。為了協助您趕上變更的腳步,我們在網站上新增了架構章節,您可以在其中找到數個關於新系統內部運作的深入指南。
同時,我們在文件中新增了遷移指南,並啟動了致力於全新架構的工作群組。您可以在先前的部落格文章中找到更多資訊,包括如何選擇加入。
請注意,全新架構仍需要一些微調。您依賴的某些協力廠商程式庫可能尚未遷移,而且您可能會遇到我們尚未發現的問題。如果您遇到問題,請將其回報給我們的全新架構工作群組。
關於 React 18: React Native 0.68 不支援 React 18 的全新渲染引擎,這將在未來版本中實現。這是因為 React 18 依賴全新架構,才能從React 18 公告部落格文章中介紹的新功能中受益。如需更多資訊,請參閱此處的 React Conf 主題演講。
網站更新
除了主要程式碼庫的改進之外,在 Simek、Megatron4537 和 slorber 的協助下,網站上也進行了許多改進!特別是,您現在可以透過頂端工具列中的新章節,學習如何為 React Native 做出貢獻。此外,「貢獻」章節和新的「架構」章節現在已取消版本化 — 現在只有這些章節的一個副本,而不是每個 React Native 版本都有一個副本。