1、connect方法:
(1)方法声明:connect([mapStateToProps], [mapDispatchToProps], [mergeProps],[options])
(2)作用:连接react组件与redux store
(3)书写位置:一般写在“与布局相关的组件中”
(4)举例:export default connect(mapStateToProps, mapDispatchToProps)(Counter);//其中counter代表的是一个组件,mapStateToProps函数允许我们将 store 中的数据作为 props 绑定到组件上;mapDispatchToProps函数允许我们将 action 作为 props 绑定到组件上
(5)原理:connect之所以会成功,是因为Provider组件:首先,在原应用组件上包裹一层,使原来整个应用成为Provider的子组件;其次,接收Redux的store作为props,通过context对象传递给子孙组件上的connect。connect真正连接 Redux 和 React,它包在我们的容器组件的外一层,它接收上面 Provider 提供的 store 里面的 state 和 dispatch,传给一个构造函数,返回一个对象,以属性形式传给我们的容器组件。
2、redux——action
(1)state、store和action:应用中所有state都以对象树的形式存储在一个单一的store中,唯一的改变state的方法是触发action;为了根据action信息改变state树,需要编写reducers
(2)action是一个具有type属性的哈希对象,作为reducer函数中switch语句的开关
3、redux——reducer(状态处理函数)
(1)作用:根据action对象的状态来更新状态
(2)工作方式:接收一个state参数,作为初始的state,接收一个action对象,在函数体中使用switch语句判断action的type,然后定义相应的处理方式(返回新的state对象)
4、redux——store对象(state状态管理器)
(1)使用redux包提供的createStore()函数来创建一个store对象,const reduxStore = createStore(reducer);
5、redux——combineReducers
(1)作用:把一个由多个不同 reducer 函数作为 value 的 object,合并成一个最终的 reducer 函数,然后就可以对这个 reducer 调用 createStore
6、redux——applyMiddleware()
(1)作用:Middleware 最常见的使用场景是无需引用大量代码或依赖类似 Rx 的第三方库实现异步 actions。这种方式可以让你像 dispatch 一般的 actions 那样 dispatch 异步 actions。
7、action, Reducer, store 之间的关系
(1)action 是一个哈希对象.
(2)reducer 中定义如何根据 action 来操作 state
(3)store 接收 reducer 作为参数(通过 store 的 api 来接收 action 以调用 reducer)
网友评论