v19.2Latest

將 React 加入現有專案

如果您想在現有專案中加入一些互動性,您不需要用 React 重寫整個專案。只需將 React 加入您現有的技術堆疊中,並在任何地方渲染互動式的 React 元件。

注意

您需要安裝 Node.js以進行本地開發。 雖然您可以 線上試用 React或使用簡單的 HTML 頁面,但實際上您開發時想使用的大多數 JavaScript 工具都需要 Node.js。

為現有網站的整個子路由使用 React

假設您在 example.com有一個使用其他伺服器技術(例如 Rails)構建的現有網路應用程式,並且您希望完全使用 React 來實作所有以example.com/some-app/開頭的路由。

以下是我們建議的設定方式:

  1. 使用其中一種 基於 React 的框架構建您應用程式的 React 部分
  2. 在您框架的配置中,將/some-app指定為基礎路徑(設定方式:Next.jsGatsby)。
  3. 配置您的伺服器或代理,使所有位於 /some-app/下的請求都由您的 React 應用程式處理。

這確保了您應用程式的 React 部分能夠受益於這些框架內建的最佳實踐

許多基於 React 的框架是全端框架,讓您的 React 應用程式能夠利用伺服器。然而,即使您無法或不希望在伺服器上執行 JavaScript,也可以使用相同的方法。在這種情況下,請改為在next export 輸出提供 HTML/CSS/JS 匯出(Next.js 的/some-app/,Gatsby 的預設輸出)。

為現有頁面的一部分使用 React

假設您有一個使用其他技術(伺服器端技術如 Rails,或客戶端技術如 Backbone)構建的現有頁面,並且您想在該頁面的某處渲染互動式 React 元件。這是整合 React 的常見方式——事實上,Meta 多年來大多數 React 的使用方式就是如此!

您可以分兩步完成:

  1. 設定一個 JavaScript 環境,讓您能夠使用JSX 語法、使用 import/export 語法將程式碼拆分為模組,並從 npm套件註冊表使用套件(例如 React)。
  2. 在頁面上您希望看到的位置渲染您的 React 元件。

具體方法取決於您現有的頁面設定,因此讓我們詳細探討一下。

步驟 1:設定模組化 JavaScript 環境

模組化 JavaScript 環境讓您可以在單獨的檔案中編寫 React 元件,而不是將所有程式碼寫在一個檔案中。它還允許您使用其他開發者在npm註冊表上發布的所有優秀套件——包括 React 本身!具體做法取決於您現有的設定:

  • 如果你的應用程式已經使用 import語句分割成多個檔案,請嘗試使用你現有的設定。檢查在你的 JS 程式碼中撰寫<div /> 是否會導致語法錯誤。如果會導致語法錯誤,你可能需要 使用 Babel 轉換你的 JavaScript 程式碼,並啟用 Babel React 預設設定才能使用 JSX。
  • 如果你的應用程式沒有現有的編譯 JavaScript 模組設定,請使用 Vite進行設定。Vite 社群維護了許多與後端框架的整合,包括 Rails、Django 和 Laravel。如果你的後端框架不在清單中,請遵循此指南手動將 Vite 建置與你的後端整合。

要檢查你的設定是否正常運作,請在你的專案資料夾中執行此命令:

npm install react react-dom

然後在你的主要 JavaScript 檔案(可能名為 index.jsmain.js)頂部加入以下幾行程式碼:

如果你的整個頁面內容都被「Hello, world!」取代,表示一切正常!請繼續閱讀。

注意

首次將模組化 JavaScript 環境整合到現有專案中可能會讓人感到畏懼,但這是值得的!如果你遇到困難,請嘗試我們的社群資源Vite 聊天室

步驟 2:在頁面上的任何位置渲染 React 元件

在上一步中,你將以下程式碼放在主要檔案的頂部:

當然,你實際上並不想清除現有的 HTML 內容!

刪除此程式碼。

相反地,你可能希望在 HTML 中的特定位置渲染你的 React 元件。開啟你的 HTML 頁面(或產生它的伺服器模板),並在任何標籤上新增一個唯一的id 屬性,例如:

這讓你可以使用 document.getElementById找到該 HTML 元素,並將其傳遞給createRoot,以便在內部渲染你自己的 React 元件:

請注意,來自 index.html的原始 HTML 內容被保留了下來,但你自己的NavigationBarReact 元件現在出現在你 HTML 中的<nav id="navigation"> 內部。閱讀 createRoot 使用文件以了解更多關於在現有 HTML 頁面內渲染 React 元件的資訊。

當你在現有專案中採用 React 時,通常會從小型互動元件(例如按鈕)開始,然後逐漸「向上移動」,直到最終整個頁面都由 React 建構。如果你達到這一點,我們建議在之後立即遷移到React 框架,以充分利用 React。

在現有的原生行動應用程式中使用 React Native

React Native也可以逐步整合到現有的原生應用程式中。如果你有現有的 Android(Java 或 Kotlin)或 iOS(Objective-C 或 Swift)原生應用程式,請遵循此指南為其新增一個 React Native 畫面。