36

直接使用 store.dispatch 有什么害处吗?

在我看来,调用起来要容易得多(因为它对所有子组件都可用),到目前为止,在我的测试中,我还没有找到不同之处。

谢谢!

4

2 回答 2

60

通用应用程序中,您需要针对每个请求使用不同的商店实例。如果您只是从某个模块将商店导出为单例,那么您将很难添加服务器渲染。

这就是为什么我们从不鼓励在文档中使用单例存储,并且总是鼓励您使用<Provider>通过 React context将其传递到层次结构中。这使得 store 可用于消费组件,而无需使其成为单例。

至于为什么connect()从 React Redux 中传递dispatch作为一个 prop 而不是它本身——这是因为你在连接的组件中store并不需要它本身。store订阅和阅读状态是由完成的,connect()因此您只需要dispatch()在组件中。

于 2015-10-20T01:00:51.597 回答
2

通常我发现 store 是在顶层模块中初始化的,然后通过react-redux connect 函数在较低级别的模块中使用。

这避免了直接在较低级别的模块中导入商店的需要,因为它将从顶层导入。

于 2015-10-19T19:31:39.127 回答