React-redux 初识

React-redux 对外提供的 API 有四个:Provider/createProvider/connectAdvanced/connect

connectAdvanced

connectAdvanced(selectorFactory, [connectOptions])

connectAdvanced 用来连接组件到 Reduxstore 上。是 connect 函数的基础,但并没有规定如果将 statepropsdispatch 处理传入最终的 props 中。

connectAdvanced 并没有对产生的 props 做缓存来优化性能,都留给了调用者去实现。
connectAdvanced 并没有修改传入的组件类,而是返回一个新的、连接到 store 的组件类。

返回:

函数返回一个高阶组件,该高阶组件将从 store 的 state 中构建的 props 传递给被包裹组件。

Provider

Provider 使组件层级中的 connect() 方法都能获取到 Redux Store
正常情况下,你的根组件应该嵌套在 <Provider> 中才能使用 connect() 方法。

如果你真的不想把根组件嵌套在 <Provider> 中,你可以把 store 作为 props 传递到每一个被 connet() 包装的组件,但是我们只推荐您在单元测试中对 store 进行伪造 (stub) 或者在非完全基于 React 的代码中才这样做。
正常情况下,你应该使用 <Provider>

connect()

connect([mapStateToProps], [mapDispatchToProps], [mergeProps], [options])

连接 React 组件与 Redux store。
连接操作不会改变原来的组件类。
反而返回一个新的与 Redux store 连接的组件类。

返回值:

根据配置信息,返回一个注入了 state 和 action creator 的 React 组件。


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!