为什么在 Redux 中直接使用 "this.props.dispatch" 而不是 "store.dispatch"?
Why use "this.props.dispatch" rather than "store.dispatch" directly in Redux?
直接使用store.dispatch有什么坏处吗?
在我看来它更容易调用(因为它可用于所有子组件)并且在我到目前为止的测试中,我还没有发现差异。
谢谢!
通常我发现存储在顶层模块中初始化,然后通过 react-redux connect 函数在较低层模块中使用。
这样就不需要直接在较低级别的模块中导入商店,因为它会从顶层导入。
在 universal apps 中,您需要针对每个请求使用不同的商店实例。如果您只是从某个模块将商店导出为单例,您将很难添加服务器渲染。
这就是为什么我们从不鼓励在文档中使用单例存储,而是始终鼓励您使用 <Provider>
to pass it down the hierarchy via React context。这使得存储对消费组件可用,而无需使其成为单例。
至于为什么 React Redux 中的 connect()
传递 dispatch
作为 prop 而不是 store
本身——这是因为你并不真的需要 store
本身连接的组件。订阅和阅读状态由 connect()
完成,因此您只需要 dispatch()
在组件中。
直接使用store.dispatch有什么坏处吗?
在我看来它更容易调用(因为它可用于所有子组件)并且在我到目前为止的测试中,我还没有发现差异。
谢谢!
通常我发现存储在顶层模块中初始化,然后通过 react-redux connect 函数在较低层模块中使用。
这样就不需要直接在较低级别的模块中导入商店,因为它会从顶层导入。
在 universal apps 中,您需要针对每个请求使用不同的商店实例。如果您只是从某个模块将商店导出为单例,您将很难添加服务器渲染。
这就是为什么我们从不鼓励在文档中使用单例存储,而是始终鼓励您使用 <Provider>
to pass it down the hierarchy via React context。这使得存储对消费组件可用,而无需使其成为单例。
至于为什么 React Redux 中的 connect()
传递 dispatch
作为 prop 而不是 store
本身——这是因为你并不真的需要 store
本身连接的组件。订阅和阅读状态由 connect()
完成,因此您只需要 dispatch()
在组件中。