React Native 0.69 版本發佈公告
我們很高興發佈新版本的 React Native 0.69.0。此版本針對 React Native 的全新架構和新功能進行了多項改進:React 18 支援和捆綁 Hermes。請繼續閱讀以瞭解更多資訊!
章節
React 18
我們很高興與您分享,React Native 0.69 是第一個支援 React 18 的版本。React 18 帶來了許多改進,例如 useId
等新 Hook。此外,React 18 還包含新的並行功能,例如 useTransition
或完整的 Suspense 支援。
在 React Native 0.69 上,React 18 預設為啟用。但是,如果您尚未遷移到全新架構,則只能利用不使用並行渲染和並行功能的特性。全新架構的建構已將並行渲染納入考量,但我們無法為舊架構新增該支援。
您可以在此處瞭解有關 React Native 中 React 18 支援的更多資訊。
捆綁 Hermes
在此版本之前,Hermes 和 React Native 是分開發佈的。這導致 Hermes 的哪個版本與 React Native 的哪個版本相容感到困惑。為了解決此問題,從 React Native 0.69 開始,我們將隨 React Native 一起發佈相容版本的 Hermes。進行此變更將使在 React Native 中使用 Hermes 更加穩定。
使用適當版本的 Hermes 由 React Native 處理,但是,請務必遵循升級助手中的步驟,以確保整合如預期般運作。如果您尚未啟用 Hermes,可以依照此處的步驟進行啟用。雖然我們將繼續支援其他 JavaScript 引擎,但我們建議所有人遷移到 Hermes,以獲得最佳體驗並確保我們能更好地為您提供支援。
請注意,Android 上全新架構的使用者將需要從原始碼建構 Hermes。若要從原始碼建構 Hermes,Windows 使用者還需要依照這些步驟。
如果您有興趣瞭解更多關於 React Native 捆綁 Hermes 在底層如何運作的資訊,您可以查看此處的深入文件。
全新架構
我們正在繼續為 Android 和 iOS 推出全新架構。如果您尚未遷移您的應用程式或函式庫,請依照此處的步驟進行。您也可以閱讀關於全新架構工具和資源的最新更新,以瞭解更多資訊。
0.69 版本重點
如上所述,此版本中最重要的改進圍繞在 React 18 支援和捆綁 Hermes。但是,還有其他值得注意的變更,包括
- 棄用支援 iOS/tvOS SDK 11.0,現在需要 12.4+ 版本
- 更佳支援為 Android 開發的 M1 使用者
- 新增新的
.xcode.env
組態檔,以更精確地取得節點可執行檔來源 - React Native 現在使用 Android 11 的最新狀態列 API
- 支援 C++17
- 新的
hotkeysEnabled
選項在 iOS 偵錯選單中
重大變更
還有一些重大變更
- React Native CLI 已升級到 8.0 的新主要版本
link
和unlink
命令已移除,改為支援自動連結- 已棄用的
initCompat
已移除,請改用init
命令 - 已移除已棄用的
run-android
屬性 - 已移除
install
和uninstall
命令 - 已從
react-native.config.js
移除 assets 和 hooks – 您需要從組態中移除這些屬性 podspecPath
已從 iOS 依賴組態中移除- 已從
run-ios
移除--project-path
選項 - 變更 iOS 來源目錄偵測方式,從尋找 Xcode 專案改為尋找 Podfile
- 已捨棄對
console.disableYellowBox
的支援 - 已移除已棄用的 prop 類型 (cdfddb4dad、3e229f27bc、10199b1581)
- 自 RN 0.65 起已棄用的
removeListener
,已從 Appearance 中移除 - 如果您使用的是
SegmentedComponentIOS
,現在需要將其替換為第三方函式庫,例如 segmented-control (235f168574)
升級
我們也升級了一些依賴項目
- 將 AGP 升級至 7.1.1 - 我們建議在您的應用程式中堅持使用此版本
- Android 版
boost
已更新至 1.76 以與 iOS 版本對齊 - Ruby 已升級至 2.7.5
- 直接 metro 依賴項目已升級至 0.70.1
您可以在變更記錄中查看完整變更清單。
致謝
80 位貢獻者及其 629 次提交協助促成了此版本的發佈 - 感謝大家!
我們也感謝發佈測試人員、支援者以及所有其他提供意見回饋以確保此版本盡可能穩定的人員。