Reactjs 是否可以将React应用程序加载到另一个React应用程序中?

Reactjs 是否可以将React应用程序加载到另一个React应用程序中?,reactjs,Reactjs,是否可以将React应用程序加载到另一个React应用程序中 我已经创建了一个React应用程序,但情况发生了变化,现在我想围绕该应用程序创建一个仪表板。问题是我希望这两个应用程序能够分开运行,这样我就可以在分开的存储库中处理应用程序1,在分开的存储库中处理应用程序2。但对于部署,仅部署1个加载到其他应用中的应用 所以我想要的情况如下 应用程序1仪表板将应用程序2作为组件加载,同时仍然可以将道具从应用程序1传递到应用程序2。(身份验证将在应用程序1中进行,并且两个应用程序都与同一后端rest a

是否可以将React应用程序加载到另一个React应用程序中

我已经创建了一个React应用程序,但情况发生了变化,现在我想围绕该应用程序创建一个仪表板。问题是我希望这两个应用程序能够分开运行,这样我就可以在分开的存储库中处理应用程序1,在分开的存储库中处理应用程序2。但对于部署,仅部署1个加载到其他应用中的应用

所以我想要的情况如下

应用程序1仪表板将应用程序2作为组件加载,同时仍然可以将道具从应用程序1传递到应用程序2。(身份验证将在应用程序1中进行,并且两个应用程序都与同一后端rest api通信)


我见过Iframe和重定向等解决方案,但这不是我想要的,除非没有其他方法。

是的,这是可能的。有各种资源可以做同样的事情。我建议浏览以下文章,帮助您找到可能的解决方案

这是我的方法:

APP1应该是这样的

<!doctype html>
<html lang="en">
<head>
    <!-- Your header contents -->
</head>
<body>

<div id="content"></div>

<script>
    window.addEventListener('someComponentInitialized', () => {
        SomeComponent(
            {someConfig: 'someValue'}, 
            document.getElementById('content')
        );
    });
</script>

<script type="text/javascript" src="https://domain-where-app2-lives.ext/bundle.js"></script>
</body>
</html>

window.addEventListener('someComponentInitialized',()=>{
某些成分(
{someConfig:'someValue'},
document.getElementById('content')
);
});
APP2应该是这样的(在app1中调用bundle.js)

import SomeComponent from./components/SomeComponent';
从“React”导入React;
从“react dom”导入react dom;
const SomeComponent=(配置,元素)=>{
ReactDOM.render(,
要素
);
};
window.SomeComponent=SomeComponent;
dispatchEvent(新事件(“someComponentInitialized”);
它的作用是:


App2正在将SomeComponent方法添加到全局窗口范围。在App1中,调用该方法并传递参数,参数1是配置,参数2是要打印SomeComponent的元素

使用iFrame将另一个web应用加载到您的应用
import SomeComponent from './components/someComponent';
import React from 'react';
import ReactDOM from 'react-dom';

const SomeComponent = (config, element) => {
    ReactDOM.render(<SomeComponent config={config} />,
        element
    );
};

window.SomeComponent = SomeComponent;
window.dispatchEvent(new Event('someComponentInitialized'));