![](/img/trans.png)
[英]My react app only renders in one file and not when imported to another
[英]One react app imported into another react app?
是否可以將一個 React 應用程序(使用 create-react-app 構建)導入另一個完全不同的 React 應用程序。 我們都在 SPA 中導入了組件,但是否可以完全導入不同的應用程序? 如果有怎么辦?
此外,這兩個 React 應用程序可能共享一些類似的依賴項/文件/庫.. 例如 bootstrap/css/Redux 存儲/等。 此外,還有一些常見的減速器的可能性。 這些常見的 reducer,可能需要在這兩個 react 應用程序之間進行交互/監聽操作。
假設我們有:
ReactDOM.render(<Provider store={store}><MainApp /></Provider>, document.getElementById('root'));
我可以添加另一個像這樣的應用程序(不是在這個應用程序中構建的),並在 dom 中定位另一個節點???
ReactDOM.render(<Provider store={store}><ExternalAPP /></Provider>, document.getElementById('root22'));
以前做過嗎? React 將我們所有的組件壓縮成“塊”,基本上是 js 文件。
謝謝,任何提示/建議/提示
您可以使用npm pack
命令。
它從您當前的應用程序創建一個 tarball (.tgz) 文件。 然后將此文件移動到其他應用程序文件夾,然后運行:
npm install app1
(假設 app1 是您的第一個應用程序名稱)。
安裝后,您可以在node_modules/App1/
看到您的 app1 文件。 現在您可以導入您想要的文件或組件並在其他應用程序中使用它。
希望這可以幫助。
對我有用的一種方法是將 CRA 帶到 Github 和npm install
其作為依賴項安裝。 我強烈建議您查看此資源,該資源詳細解釋了如何為此過程准備 React 組件。 按照鏈接教程中的步驟直到 #3,然后將所有內容(包括 /dist 文件夾)帶到 Github。 然后,執行npm install org_name/repo_name
並將其作為依賴項安裝在您的第二個 React 應用程序中。 然后,要導入特定組件,您可以執行import { Button } from 'repo_name/dist/index'
操作,或者引用用於導出組件的任何文件。
如果鏈接不起作用,請按照文章中的步驟進行操作:
lib
的文件夾,其中存儲您要帶到其他 react 應用程序的所有組件。 還要在此文件夾中定義一個名為index.js
的文件來導出這些組件。dist
文件夾。( npm install --save-dev @babel/core @babel/cli @babel/preset-env
和npm install -save @babel/polyfill
){
"presets": [
[
"@babel/env",
{
"targets": {
"edge": "17",
"firefox": "60",
"chrome": "67",
"safari": "11.1"
},
"useBuiltIns": "usage",
"corejs": "3.6.5"
}
],
"@babel/preset-react"
]
}
"build": "rm -rf dist && NODE_ENV=production babel src/lib --out-dir dist --copy-files";
npm run build
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.