javascript - Redux:在没有它的情况下使用 compose() 或 applyMiddleware 之间的区别?
问题描述
我以前有过这样的:
createStore(reducers, {}, applyMiddleware(reduxThunk));
刚刚在某处看到另一段代码,现在将我的代码更改为此,使用compose
:
createStore(reducers, {}, compose(applyMiddleware(reduxThunk)))
到目前为止,两者都工作正常。但我不完全理解其中的区别。我之前做错了吗?有人可以向我解释一下吗?
解决方案
“商店增强器”是一种特定类型的 Redux 插件,它包裹在商店周围以赋予它额外的能力。
createStore
接受单个商店增强器作为参数,并使用它来自定义创建的商店。
这意味着如果您想一次使用多个商店增强器,您需要一种方法以某种方式将它们组合成一个商店增强器,以便您可以将其传递给createStore
.
applyMiddleware
是一个存储增强器,因此您可以直接使用它并将其结果作为唯一的增强器传递给createStore
.
如果您想使用多个增强器,例如applyMiddleware
和devTools
,您需要使用compose()
将它们组合在一起。
请注意,您确实应该使用我们的官方 Redux Toolkit 包,它有一个configureStore
API,已经使用一行代码为您正确设置了 Redux 存储。
推荐阅读
- php - 如何使用 HelperForm 在模板中插入图像?
- ios - 在 Xamarin.ios 上获取 VPN 连接状态
- unity3d - 游戏对象奇怪地移动
- r - R Data.table 奇怪的搜索问题。(不可打印的字符?)
- android - 在 webview 前面带有 adview、webview 和搜索输入的 XML
- python - 如何在 python 中使用相同的轴在同一个图形上绘制多个信号
- json - Apply regex pattern in jolt specification to find attribute is alphanumeric or number
- regex - 正则表达式帮助。修改正则表达式以排除大括号内的内容
- java - Spring Boot Banner 报错java版本
- typescript - TypeScript(泛型):推断数组类型的错误