跳至主要內容

協助遷移 React Native 函式庫至新架構

·6 分鐘閱讀時間
Riccardo Cipolleschi
Riccardo Cipolleschi
Meta 軟體工程師

重點摘要:我們正在努力改進支援 React Native 新架構的資源。我們已發布儲存庫以協助遷移您的應用程式 (RNNewArchitectureApp) 和函式庫 (RNNewArchitectureLibraries)。我們也正在修改網站上的 新架構指南,並且建立了一個 GitHub 工作小組,以回答與新架構相關的問題。

簡介

在這篇文章中,我們將分享關於工具和資源的更新,以協助您將原生模組原生組件遷移到它們的新架構對應項目,即 Turbo模組Fabric 組件

React Native 使用者利用大量的開源函式庫來建構應用程式。為了建立完整且一致的生態系統,這些函式庫必須進行遷移,以便每個人都能受益於新架構所釋放的功能和效能改進。

以下是我們正在努力支援函式庫開發人員遷移到新架構的工作

  • 文件: 我們正在擴展網站上的 新架構指南,以涵蓋更多新架構的概念以及如何開發您的組件。
  • 範例遷移: 我們已建立兩個儲存庫,以示範如何將 React Native 應用程式遷移到新架構 (RNNewArchitectureApp),以及如何建立與新舊架構皆相容的 Fabric 組件Turbo模組 (RNNewArchitectureLibraries)。
  • 支援: 今年稍早,我們建立了一個 GitHub 工作小組,專門討論和解答關於新架構的問題。

在這篇文章中,我們將更深入地探討這些資源,並更詳細地解釋如何最有效地使用它們。最後,我們將提供目前最常用的 React Native 函式庫的遷移狀態快照。

文件

在過去 6 個月中,我們新增了關於 採用新架構的指南,以及關於 Fabric 的 架構深入探討。我們計劃擴展此內容,以納入更多關於建立 Turbo模組、理解 CodeGen 等的指南和文件。我們計劃在 0.70 版本發布時分享更新。

目前,新架構指南涵蓋如何將 您的應用程式您的函式庫 遷移以正確支援新架構。

如果您對本指南的發展歷程感興趣,或有任何意見回饋,您可以追蹤 這個 pull request。

範例遷移

對於可能想要在程式碼中追蹤的開發人員,我們準備了兩個範例儲存庫。

RNNewArchitectureApp

這個儲存庫 的建立旨在示範如何將應用程式、原生模組和原生組件從 React Native 0.67 版本上的舊架構遷移到新架構和最新版本的 React Native。每個提交對應一個隔離的遷移步驟。

Example steps to migrate an app
RNNewArchitectureApp 儲存庫中遷移的提交清單

此儲存庫的組織方式如下

  • main 分支沒有程式碼,但有一個 README.md,其中宣傳了其他分支。
  • 數個遷移分支,顯示從特定 RN 版本到另一個版本的遷移。

某些遷移分支也具有 RUN.md 檔案,其中以更人性化的方式描述了每個提交中應用的確切步驟。

我們計劃讓此範例與最新的穩定版本保持同步,並在我們將發布的任何 React Native 次要版本中新增遷移。如果您注意到任何步驟有問題,請在儲存庫中提交問題。這將持續到我們合理地認為大多數 React Native 使用者已遷移到新架構為止。

RNNewArchitectureLibraries

同樣地,這個儲存庫 提供了關於如何建立 Turbo模組Fabric 組件 的逐步指南。它著重於確保新架構和舊架構之間的向後相容性。

此儲存庫的組織方式與先前的儲存庫類似

  • main 分支沒有程式碼,但有一個 README.md,其中宣傳了其他分支。
  • 其他分支顯示如何開發 Turbo模組Fabric 組件

我們計劃讓此範例隨著 React Native 的新版本保持更新,特別是影響函式庫開發的版本,並新增更多關於如何使用進階功能的範例 (例如:實作命令、事件發射器、自訂狀態)。如果您發現錯誤,請在範例儲存庫中提交問題。

支援

我們建立了一個專門的 工作小組,為社群提供空間來提出問題並取得關於新架構的更新。如果您是函式庫維護者,這是尋找問題答案的寶貴資源,也能讓我們瞭解您的需求。若要加入,請遵循 這些指示。歡迎所有人加入。

工作小組分為幾個部分

  • 公告:分享關於 RN 新架構推廣的里程碑和重大更新的地方
  • 深入探討:討論深入探討和技術特定主題的地方
  • 文件:討論關於新架構文件和遷移資料的地方
  • 函式庫:討論關於第三方函式庫及其遷移到新架構的故事的地方
  • 問答:向社群尋求關於新架構主題協助的地方
  • 版本:討論關於版本特定錯誤和建置問題的地方

為了有效地使用此群組

  • 請確保您的函式庫列在 函式庫 區段中。這將有助於我們分享關於您的函式庫遷移的狀態更新,並幫助我們瞭解函式庫作者在支援您時面臨哪些困難。
  • 如果您遇到阻礙並需要支援,請利用問答 區段。我們的團隊和社群專家正在監控,並將盡力提供支援。
  • 密切關注其他區段中可能影響您的主題。新版本可能會引入您一直在尋找的 API。您可以透過 GitHub 訂閱特定討論。

我們計劃支援此群組,直到 新架構 預設啟用,並且所有主要函式庫都已遷移到新架構為止。

函式庫維護者一直在 工作小組中 與我們分享他們的遷移工作狀態,我們想為您提供快速概覽

後續步驟

我們致力於支援 React Native 社群採用新架構。具體而言,我們將繼續

  • 工作小組中提供盡力而為的支援。
  • RNNewArchitecture 儲存庫中提供更多關於如何使用新架構實現驚人成果的範例。
  • 提供關於 新架構 的清晰且最新的文件。
  • 追蹤 工作小組 中重要 React Native 函式庫的遷移狀態。
  • 簡化開發人員的遷移路徑

此外,React Native 0.69 將為應用程式和函式庫開發人員提供改進的 devX,以用於新架構的採用。您可以在 此處 找到關於 0.69.0 版本的更多資訊。

我們對將與 新架構 一起建構的成果感到興奮!