gpt4 book ai didi

javascript - 为什么 Redux reducer 必须没有副作用?

转载 作者:数据小太阳 更新时间:2023-10-29 04:08:51 26 4
gpt4 key购买 nike

我一直在我的 React 应用程序中使用 Redux,但有些事情一直困扰着我。 Redux 的文档非常清楚地表明 reducer 应该是无状态的。你经常会看到这样的例子:

function reducer(state = { exampleState: true }, action) {
switch(action.type) {
case "ACTION_EXAMPLE":
return Object.assign({}, state, { exampleState: false });
default:
return state;
}
}

我的问题是为什么需要这样做? JavaScript 是单线程的。 reducer 内部不可能出现竞争条件。据我所知,Redux 商店只能返回商店的当前状态,所以如此关注纯函数似乎很奇怪。

最佳答案

作者的 documentation 中提出了纯函数的案例.当然,您可以使用不纯函数编写 reducer,但是:

Development features like time travel, record/replay, or hot reloading will break.

如果这些功能都没有带来好处或您不感兴趣,那么请务必编写非纯函数。但是,那么问题就变成了,为什么要使用 Redux?

关于javascript - 为什么 Redux reducer 必须没有副作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36016336/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com