如何在两个以上的React应用程序之间共享数据?

时间:2019-03-26 09:13:23

标签: javascript reactjs redux react-redux frontend

我需要为一个以上的应用程序共享一些数据,而部分数据是安全的,而有些则不是。它需要避免来自应用程序的多个相同请求。我考虑过IndexedDb,localStorage,但是在某些以隐身模式浏览器中,它无法正常工作。也许是创建父应用程序的最后一种方法,该应用程序将被赋予api接口,执行相同的请求并通过全局对象向子组件提供状态,并且子组件可以通过全局api调用请求(如果需要),但是它非常奇怪,任何人都可以更改其对象。有人知道如何解决这个问题吗?任何想法对我都有好处!感谢您的建议!

1 个答案:

答案 0 :(得分:0)

也许您可以研究Micro Frontends基础结构。 “微前端”一词最早于2016年底出现在ThoughtWorks Technology Radar中。它将微服务的概念扩展到了前端世界。

基本上,您可以从“外壳”应用程序开始,该应用程序包含全局状态或数据,例如路由,会话,身份验证令牌等。

在此层之下,您可以选择要用于构建独立SPA的任何前端框架,它们可以通过由自定义javascript事件组成的事件总线轻松共享全局数据。

例如,您可以在外壳中创建事件“ print_report”:

window.dispatchEvent(new Event("print_report") );

并在子级应用中执行它:

window.addEventListener("print_report", () => { call_back(data); });

最后,每个前端模块:

  • 是自包含的
  • 可以独立开发
  • 可以独立测试
  • 可以独立部署
  • 与技术/框架无关吗?
  • 可以通过全局事件总线相互通信。

有关上述内容的更多信息,请阅读: