【发布时间】:2017-11-29 17:35:24
【问题描述】:
纯 reducer 没有副作用,可以实现时间旅行等功能。它们使推理应用程序行为变得更容易。
这对我来说很直观。但我无法清楚说明为什么纯 reducer 会导致这些积极的非功能属性。
有人能帮我解释一下为什么让 reducer 无副作用会更容易推理应用程序行为吗?
是因为在运行 reducer 后保证你有完全相同的状态吗?
如果是这样,那么即使是具有副作用的(即非纯)reducer 也肯定具有此属性吗?
【问题讨论】:
-
这是纯函数的基本属性,是的。不,在相同输入上运行 reducer 后,您不能创建具有完全相同状态的非纯函数。
-
我认为这个问题可能对 Software Engineering SE 有更好的吸引力。无论如何,据我所知,没有副作用是推理更容易的原因,因为你所需要的只是输入和输出——这是不言而喻的。我不会将此作为答案发布,因为我不确定这种解释对您来说是否是循环推理。
标签: javascript redux pure-function