首页 > 解决方案 > Redux:在没有它的情况下使用 compose() 或 applyMiddleware 之间的区别?

问题描述

我以前有过这样的:

  createStore(reducers, {}, applyMiddleware(reduxThunk));

刚刚在某处看到另一段代码,现在将我的代码更改为此,使用compose

  createStore(reducers, {}, compose(applyMiddleware(reduxThunk)))

到目前为止,两者都工作正常。但我不完全理解其中的区别。我之前做错了吗?有人可以向我解释一下吗?

标签: javascriptreduxreact-reduxmiddlewareredux-thunk

解决方案


“商店增强器”是一种特定类型的 Redux 插件,它包裹在商店周围以赋予它额外的能力。

createStore接受单个商店增强器作为参数,并使用它来自定义创建的商店。

这意味着如果您想一次使用多个商店增强器,您需要一种方法以某种方式将它们组合成一个商店增强器,以便您可以将其传递给createStore.

applyMiddleware是一个存储增强器,因此您可以直接使用它并将其结果作为唯一的增强器传递给createStore.

如果您想使用多个增强器,例如applyMiddlewaredevTools,您需要使用compose()将它们组合在一起。

请注意,您确实应该使用我们的官方 Redux Toolkit 包,它有一个configureStoreAPI,已经使用一行代码为您正确设置了 Redux 存储。


推荐阅读