- 安装
 yarn add react-reduxnpm install react-redux
npm install redux
  - 用 redux 来构建 store 
- 创建 reducer/index.js 文件,构建reducer来响应 actions
 - 创建 store/index.js 文件,通过createStore方法,把reducer 传进来
 
   import  { createStore } from "redux"import { reducer } from "./reducer"export default createStore(reducer)const initState = { count:0 }export.reducer = ( state = inistate, action ) => {switch (action.type){case 'add_action':return {count: state.count + 1}default: return state;}}
   - 引入 Provider 组件 
- 在app.js 中 导入 Provider 组件
 - 利用 Provider 组件将整个结构进行包裹,并传递 store
 
  import { Provider } from 'react-redux'function App(){return (<Provider store={store}> ... </Provider>)}
  - connect 使用 
- 导入
 - 调用
 - connect 方法会有一个返回值,而返回值就是加强之后的组件
 
  import { connect } from 'react-redux'connect(mapStateToProps,mapDispatchToProps) (Cpmponent)
 - connect 参数说明: 
- mapStateToProps(state,ownProps) :函数类型;主要用来获取store中的数据
 - mapDispatchToProps(dispatch,ownProps):函数类型;主要用于触发action
 
  
  - 用 connect 方法 让组件 与 store 关联 
- 在 组件 A 和 组件 B 中分别导入 connect 方法
 - 利用 connect 方法对组件进行加强,并导出
 import { connect } from 'react-redux'connect(mapStateToProps,mapDispatchToProps) (CpmponentA)class ComA  extends React.Component{handleClick = () => {this.props.sendAction()}render(){return <button onClick={this.handleClick}> + </button>}}
const mapDispatchToProps = dispatch => {return {sendAction: () => {dispatch({type: 'add_action'})}}
}
export default connect(null,mapDispatchToProps) (ComA)
class ComB  extends React.Component{render(){return <div>{this.props.count} </div>}}
const mapStateToProps = state => {return state}
}
export default connect(mapStateToProps) (ComB)