【发布时间】:2018-11-19 16:13:14
【问题描述】:
总结:
1) 你知道如何在通过路由挂载/卸载上下文提供程序时保持其状态吗? 2) 或者您知道支持多个独立存储的维护良好的 Flux 实现吗?
详细说明:
除了 React 组件自己的 state 之外,到目前为止,我主要使用的是 redux。除了不喜欢全局管理每个状态的想法,即使它可能只与子树相关,它也成为我的新项目的一个问题。
我们希望动态加载组件并通过路由将它们添加到应用程序。为了能够让组件准备好即插即用,我们希望它们能够处理自己的状态(存储它、从服务器请求它、提供修改它的策略)。
我阅读了有关如何使用 redux 将 reducer 动态添加到全局存储的信息,但实际上我发现 Reacts Context API 的方法要好得多,我可以将一些状态封装在 Provider 中,并可以在我需要的任何地方使用它。
我唯一的问题是,Provider 和 Consumer 是 React 组件,所以如果它们是组件的一部分,通过路由安装和卸载,则可能已经创建或获取一次的状态消失了.
在我看来,除了暂时将状态存储在本地存储或服务器上之外,没有办法解决这个问题。如果有请告诉我!!!
如果没有更好的解决方案:
我还考虑了一个更原始的 Flux 实现,它允许多个存储,可以用相关组件子树封装。但是除了 Redux 之外,我还没有真正找到任何维护良好的 Flux 实现。 Mobx 是个例外,但我真的更喜欢 Redux 的 reducer 解决方案,而不是 Mobx 的 observable 解决方案。再说一次,如果您知道维护良好的多商店 Flux 实现,请告诉我!!!
我会很高兴收到一些反馈,并希望你能指出一个比动态 reducer Redux 或临时持久化 Context 状态更令人满意的方向。
提前非常感谢!
【问题讨论】:
标签: reactjs react-router react-context