redux-flow.png

  • reducer只是一个接收state和action,并返回新的state的函数
  • view层通过dispitch发出actions通知触发store里的reducer来更新state
  • redux数据操作在reducer中,flux在store中
    1. Action作用
    2. 1.Action来分辨具体的执行动作。比如我是要添加一个项目还是删除一个项目。
    3. 2.操作数据首先得有数据。比如添加数据的有数据,删除数据得有idaction就是存这些数据的地方。
    4. 3.不带其他数据,仅仅启示已有数据需要如何调整,或者需要主动获取哪些数据。如果我要删除掉全部数据,只要告知这件事即可。
    5. export const updateStatus = (payload) => (dispatch, getState) => {
    6. dispatch({
    7. type: 'UPDATE_STATUS',
    8. payload
    9. })
    10. }
    Reducer的作用
    action里面的每一种描述,reducer都有一个对应的函数来处理数据。之后返回一个新的state。
    const initialState = {
    isAuthenticated: false,
    userInfo: {
      id: '1244537110451458049',
      name: '封举超'
    }
    }
    export default function user(state = initialState, action) {
    switch (action.type) {
      case 'UPDATE_STATUS':
        return {
          ...state,
          ...action.payload
        }
      default:
        return state
    }
    }
    
    Store
    1.维持应用的state;
    2.提供getState()方法获取state;
    3.提供dispatch(action)方法更新state;
    4.通过subscribe(listener)注册监听器
    

    react-redux

    Redux是独立的,它与React没有任何关系。React-Redux是官方提供的一个库,用来结合redux和react的模块。
    React-Redux提供了两个接口Provider、connect。
    Provider是一个React组件,它的作用是保存store给子组件中的connect试用
    connect 会把State和dispatch转换成props传递给子组件