我是使用状态管理的新手。目前我正在开发一个 blazor 应用程序,我偶然发现了“fluxor”框架,它允许通过通量模式进行状态管理。Fluxor 对我来说工作得很好,但是我似乎无法弄清楚页面状态的实际存储位置。它是在缓存中,数据库还是其他一些奇特的方式?有没有办法让我在浏览器中查看存储的数据?
顺便说一下,我在我的应用程序的客户端使用了fluxor。
谢谢你的协助!
我是使用状态管理的新手。目前我正在开发一个 blazor 应用程序,我偶然发现了“fluxor”框架,它允许通过通量模式进行状态管理。Fluxor 对我来说工作得很好,但是我似乎无法弄清楚页面状态的实际存储位置。它是在缓存中,数据库还是其他一些奇特的方式?有没有办法让我在浏览器中查看存储的数据?
顺便说一下,我在我的应用程序的客户端使用了fluxor。
谢谢你的协助!
状态保存在内存中。您可以通过启用 Redux Devtools 来使用漂亮的 GUI 查看状态,.UseReduxDevTools()
如下所示:
services.AddFluxor(o => o
.ScanAssemblies(typeof(SomeType).Assembly)
.UseReduxDevTools());
然后使用 redux devtools 插件:
https://chrome.google.com/webstore/detail/redux-devtools/lmhkpmbekcpmknklioeibfkpmmfibljd?hl=en
如果您希望将状态保存到本地存储或数据库,我创建了一个库来保存名为 Fluxor.Persist 的状态:
AnIStore
被实例化为 Scoped 依赖项。最终,这是当前用户一切的根源。
当您注入IStore
时IState<Whatever>
IDispatcher
,IActionSubscriber
它们最终将来自存储在该IStore
实例中的状态。
如果你将 IStore 注入到某个东西中,你可以遍历它的 Features 属性,这是一个IFeature
按名称键控的字典(名称来自IFeature.GetName
)。
IFeature 有一个object GetState()
可以用来获取状态的方法。
这是访问状态的非通用方式。状态实际上是使用泛型存储的。
查看 ReduxDevTools 代码,您将看到如何使用和获取所有状态(发送到 ReduxDevTools 浏览器插件)的IStore.Features
示例GetState
在OnJumpToState
方法中它显示了我如何从浏览器插件恢复历史状态