在微前端场景中如何共享状态?

dra*_*sgn 5 state reactjs micro-frontend

第一个想法是cookie,但你很快就会耗尽空间。

Flo*_*ppl 9

有多种方法可以在微前端中进行通信。

正如已经指出的,不同的微前端应该是松散耦合的,所以你永远不会直接从一个微前端到另一个微前端进行对话。

关键问题是:您的微前端解决方案是在服务器端还是客户端组成的?

对于客户端,我写了一篇关于通信的文章。

如果您位于服务器端(由于提到了 cookie,问题似乎朝着这个方向发展),那么我建议使用标准微服务模式进行通信和交换状态。当然,使用 Redis 缓存等集中式系统会有帮助。

一般来说,不同的微前端应该有自己的状态并尽可能独立。

通常您想要共享的不是状态/数据,而是带有 UI 表示的状态。原因很简单:这样您就不必处理表示和边缘情况(如果数据不可用怎么办?)。Piral是展示这一点的一个框架。

希望有帮助!

  • 很棒的文章@Florian https://dev.to/florianrappl/communication- Between-micro-frontends-41fe (2认同)

Mil*_*bit 3

没有共享状态,这会打破应该发生的隔离概念。这种模式存在于所有微服务架构中,因为它应该消除单点故障和维护更大存储时的其他复杂情况。常见的方法是每个“微前端”都有自己的商店(即 Redux)。Redux文档有一个关于此的主题。