我正在尝试创建一个简单的计数器应用程序来了解有关Flux架构的更多信息,但它还没有真正点击过。其中一部分与ReduceStore
的实施有关。
在Flux文档中,给出了一个包含此reduce函数的简单示例:
reduce(state: number, action: Object): number {
switch (action.type) {
case 'increment':
return state + 1;
case 'square':
return state * state;
default:
return state;
}
}
该功能记录如下:
reduce(state:T,action:Object):T 减少当前状态,并将操作减少到此商店的新状态。所有子类都必须实现此方法。这种方法应该是纯净的,没有副作用。
换句话说:reduce函数不会改变状态,而是返回on操作的结果(在示例中是加法或乘法)。
虽然我已经理解了一般概念,但我想知道如何实际使用这样的商店。如果我正确地说,商店应该保持某种状态(Flux文档提到视频的播放时间作为例子)。但是ReduceStore
没有实现任何状态,它必须作为参数传递给reducer。这意味着实际状态需要存储在我的应用程序的其他位置 - 可能是在呈现计数器的组件(计数器应用程序的状态)中,这对我来说似乎是错误的。
这个假设是正确的,这在Flux架构中是好的还是我遗漏了关于ReduceStore
的东西 - 可能是一个不同的用例或什么?