WebWorker中的Redux存储

时间:2017-04-25 20:26:11

标签: reactjs redux electron

在许多应用程序中,我有一个背景页面。比如用Electron,浏览器扩展。我们可以把它想象成在WebWorker中的redux存储。

我有商店更新时需要更新的组件。这些组件不在WebWorker中,它们在各种范围内,我只能发送JSON字符串。向这些组件发送更新的推荐方法是什么?

我想在webworker中做store.subscribe,然后将商店的JSON.stringify发送给所有连接的东西。但接下来,我该如何更新商店?没有store.replaceWholeStore(json)。如果有的话,这仍然不是一个好的解决方案,因为所有引用都会改变,所以它会触发更新所有内容。

1 个答案:

答案 0 :(得分:3)

有各种现有的库和方法可以使Redux存储保持同步。其中大多数涉及序列化操作并将它们传递到其他Redux存储区以进行调度。

您可能需要浏览Store#SynchronizationStore#InteropRedux addons catalog部分,以获取实现商店同步方法的库列表,包括专门处理Web Workers和Electron的库。还有一些讨论这种想法的各种文章,例如Redux-Scuttlebutt: eventually consistent shared state between peers