在运行时加载远程React组件

问题描述 投票:0回答:1

我找不到足够好的答案,因此我正在创建一个新问题,其中包含我要存档的内容的详细信息。

我有一个 React 组件,它将嵌入到其他页面中。

这个 React 组件(现在我将其称为 Host Component)需要在运行时动态加载远程组件。本质上,它调用一个 API,在答案中会有一个 CDN 的 URL,它需要渲染的组件位于该 URL。我也是这些组件的所有者,我将其称为“远程组件”。 这些组件是否需要是 IIFE、UMD、CJS 或 ESM 对我来说并不重要。

到目前为止我做了什么

我一直在滥用 GPT 来寻求解决方案,但到目前为止我只得到了它。

我尝试使用 React 的延迟导入并将我的远程组件构建为 ESM。问题是构建的捆绑文件包含无法在运行时解析的

React

导入。然后我转移到 UMD 并开始通过使用 UMD Remote Component 的路径创建脚本标记来动态导入它。现在它抱怨“它无法读取 null 的属性(读取 useState)”。 GPT 建议发生这种情况是因为 Remote ComponentHost Application 使用不同的 React 实例。这是有道理的,因为如果我手动编辑捆绑包以替换对 Host ApplicationRemote Component 上的 window.react 的反应调用,它就可以正常工作。 所以我想听听你对此的看法。这种方法有意义吗?

我读到了模块联合(微前端架构),它对我来说确实有意义。但我试图归档的内容与它建议的内容略有不同。模块联合使用一个服务器来配置它期望导出/导入的模块的区域。我没有这样的东西,因为模块将由另一个应用程序管理。

谢谢大家!

编辑

我在 Reactjs Reddit 上创建了一个更详细的问题:

https://www.reddit.com/r/reactjs/comments/1d9j292/import_remote_esm_module_react_component_from_a/

reactjs import webpack-module-federation
1个回答
0
投票
MDX

文件,并使用 next-mdx-remote 库从远程源(作为字符串)加载它们。

© www.soinside.com 2019 - 2024. All rights reserved.