【问题标题】:How to render a React app in a React app (nested React apps)如何在 React 应用程序中渲染 React 应用程序(嵌套的 React 应用程序)
【发布时间】:2018-05-08 12:44:11
【问题描述】:

所以问题是是否可以将一个 React 应用程序拆分为两个不同的独立应用程序,托管在两个不同的主机上,其中应用程序 A 是一种框架,将来控制应用程序 B 和 C。我有一个问题,我想为两个应用程序(A 应用程序)建立一个共同的基础,然后加载另外两个作为它的内容。就好像我用从不同地方获取的包进行了延迟加载。我在考虑三种主要可能性:

  • 内嵌框架
  • 来自 github 的单个 SPA 项目
  • 使用 ReactDOM.render 方法

我不确定这是否可能,因为 React Router 仍然可能存在问题 - 内部应用程序是否有权操作浏览器路由?

【问题讨论】:

  • 你的意思是像一个提供容器组件的反应库?困难在哪里?
  • 我可以将应用程序 B 和 C 拆分为库,然后我可以通过 package.json 和 webpack 加载它们,但我想做的是我有一个大应用程序拆分成包 A , B 和 C,其中捆绑 B 和 C 是从不同的来源加载的(使用休息?)。如何将构建的 React 应用程序包含到容器 React 应用程序中?
  • 嘿,哥们,这个问题你解决了吗?
  • 一点也不。我尝试了 iframe,但它消除了很多可能性。我也想试试Single SPA,但是现在时间不够。 :/我能够通过插入一个带有root2 id的div并添加一个脚本部分来在一个react应用程序中托管一个react应用程序,但是当它里面有路由器和redux的东西时它就崩溃了(也许我应该删除初始化)。仍然 - 一个需要解决的复杂问题。
  • 我目前正在尝试使用 ReactDom.render 嵌套这个反应应用程序,它似乎正在工作。它还没有使用路由器。我预计的另一个问题是父反应应用程序具有不同版本的依赖项,即不同版本的反应等,因为它们被加载到同一个窗口中,并且可以预见地破坏父反应应用程序或子反应应用程序。任何人都可以建议一种管理依赖项的方法吗?我正在考虑将共享依赖项作为对等依赖项放在子项中,因此从父应用程序继承。依赖关系仍然可能不同步......

标签: reactjs react-router lazy-loading single-page-application


【解决方案1】:

这是不可能的。每个 React 应用程序在层次结构中只能有一个 package.json。如果你嵌套它,应用程序将失败并说你安装了几个 react。你应该做的是思考更多的反应和客观。您可以在 src/ 中为常用组件共享一个文件夹。您还可以拥有 src/A 这是一个“应用程序”。 src/B 这是另一个。

您在问题中描述的正是您应该做的,只是不要将其视为 react 应用程序分离,而是 src 文件夹中组件和应用程序的分离。 App A 可以由来自 /components 的组件以及 App B 组成。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-15
    • 2018-11-12
    • 2022-06-30
    • 1970-01-01
    • 1970-01-01
    • 2018-11-19
    相关资源
    最近更新 更多