Redux&react-redux

97 阅读1分钟
  1. Redux概述 Redux是一个用于JavaSciprt状态容器,提供可与预测化的状态管理,只有2kb

2.Redux三大核心 1.单一数据源头 2.State是只读的 3.使用纯函数来执行修改

  • State

    1. DomainDate:服务器返回的
    2. UIState:当前组件的
    3. APP State: 全局的
  • Action:本质是一个JS对象,必须包含一个type属性,只是描述了有事情要发生,并没有描述如何去更新state

  • Reducer: 本质是函数,响应发送过来的action,函数接收两个参数,一个是初始化的state,第二个是发送过来的action

  • Store: 就是把action与reducer联系到一起的对象,可以通过createStore来构建store对象

action{
    type: 'ADD',
    info: []
}

rootReducr = (state, action) => {
    switch(action.type){
        case 'ADD':
            return {count: state.count + 1}
        default:
            return state
    }
}

React-redux

Provider 组件、包裹在根组件最外层,使所有的字组件都可以拿到State,接收store作为props,然后通过context往下传,这样react中任何组件都可以通过context获取到store

connect 方法 Provider内部组件如果想要使用到state中的数据,就必须要connect进行一层包裹。 connet(要接收数据的函数, 要发送action的函数)(放入要加强的组件)

mapDispatchToprops是将action作为props注入component

const mapDispatchToProps = (dispatch) => {
    return {
        sendAction: () => {
            //利用dispatch发送一个action
            //传递action对象需要一个type属性
            dispatch({
                type: 'add_action'
            })
        }
    }
}
const mapStateToProps = (state) => {
    return state;
}