我正在使用redux进行项目。我以"increment/decrement a counter" basic tutorial为例。我想知道如何组织我的动作类型,以便能够在现实生活中维护和扩展我的应用程序。
INCREMENT
和一个DECREMENT
。在减速机中它会++
或--
。store.dispatch({ action: "INCREMENT", payload: { increment: -1 } })
。我可以有两个动作
export const decrementCounter = () => {
store.dispatch({ action: "INCREMENT", payload: { increment: -1 } })
};
export const decrementCounter = () => {
store.dispatch({action: "INCREMENT", payload: {increment: -1}})
}
或者另一种方式?
我假设你使用create-react-app来创建你的项目。
DO-NOT将有效载荷发送为-1或+1。这可行,但是不好的做法。
请检查redux文档。他们有很棒的文档。
这取决于您如何看待您的架构应该构建。两种方式都很好,第一种方式更能反映您应用中发生的真实事件(如点击输入附近的“+”按钮,应触发“INCREMENT”动作,点击“ - ”,应触发“DECREMENT”),所以在这种情况下,store包含更多逻辑,因为它们直接知道如何反映UI中发生的事件。
在使用第二个选项的情况下,首先,它应该具有不同的名称(类似于“已更改”),因为您希望能够在此处递减或递增。在这种情况下,存储和UI事件之间的连接较弱,并且一些逻辑存储在操作类型本身中(在这种情况下 - 应该更改多少值)。
存储和缩减器的逻辑越多越好,因为减速器是纯粹的,允许对它们进行写入测试更容易。