我用React编写了站点A。
每当用户导航到站点A中的某个页面时,我都希望将较小的React组件呈现到站点A中。
每个较小的React组件都位于站点自己的存储库中,站点A也是如此。
站点A在生产中时,如何将这些组件动态加载到站点A中?
我可以设置哪种工作流来在站点A中在本地 中开发较小的React组件?
我当时正在考虑使用Web组件(https://medium.com/@rchaves/building-microfrontends-part-iii-public-path-problem-1ce823be24c9),但不想将这些组件部署在某个地方,而只是从服务器加载这些组件。最好有一种解决方案,我可以在管道中设置一些内容以指向存在较小组件的存储库,并在构建任何组件时将这些组件与站点A代码一起打包到一个包中。
这也带来了另一个问题,即由于打包了不同的项目,因此多次加载相同的依赖项(如React,React DOM)。
其他想法可能使用npm模块,iframe等。
答案 0 :(得分:1)
如果要在主应用程序和较小的组件之间实现完全隔离,可以使用iframe,因为它们可以确保每个组件都可以具有自己的React版本和依赖项。
如果您需要在这些组件和主应用之间共享数据/交互,那么将其添加为npm依赖项是一种方法。但这将需要所有组件的统一框架版本。或者您可以尝试使用Web组件。
答案 1 :(得分:1)
我在自己的项目中遇到了类似的问题,并且发现git submodules工作得很好。
我认为并且可能证明有用的另一种方法是使用private npm package,其中包含所有较小的组件。