我正努力想出一种方法来建造微锋。
以下是我的实际情况:
将"ChildApp“嵌入到"ShellApp”的老式方法是使用iframe,并设置一个反向代理作为UI和API的代理。
根据我在实施iframe方法方面的经验,利弊如下。
后来,我偶然发现了模块联合,这对我来说是新的。据我所知,与其嵌入iframe,不如异步加载JavaScript模块,将其内容插入shell应用程序的DOM中。
从我收集到的信息来看,这里有一篇文章是关于在具有不同框架的MFE上使用Module的,然后他又提出了一些看起来“丑陋”的解决方案。
让我们从多框架和多版本微前端架构的第一条规则开始:不要这么做;-)。
模块联合是更好的方法吗?根据我的看法,以下是一些警告。
发布于 2021-07-05 05:59:58
请注意,模块联邦并不是完全的解决方案。它只处理JS文件的动态加载,并且可以定义应该多次使用的依赖项(而不是多次加载)。
但是,您可以以WebComponents的形式实现这些childs。
如果您的ChildApp是作为一个WebComponent实现的,那么您的ShellApp只需要知道接口。因为“子”看起来就像一个普通的HTML元素。
而且ShellApp不需要知道任何关于子实现细节的信息,比如使用了哪个框架。
不过,如果您想使用不加载依赖项两次的特性(比如child1的角11和子的第二个角11 ),那么您需要遵循Webpack模块联邦规则。这意味着孩子们至少要知道Webpack的MF会起作用。
https://softwareengineering.stackexchange.com/questions/429964
复制相似问题