action
action:{
type: String
...
}
reduce(state, action)
reduce是一個內部包含著switch的函數,且default總是被設置為返回state,其余選項皆返回被處理后的state,以此完成狀態的更新.
subscribe(listener)
subscribe會把listener回調函數放入一個數組中,等待使用.同時也會返回一個unsubscribe函數,用以將之前放入的回調函數移出數組.
dispatch(action)
dispatch接收一個action,并將其給予當前的reduce,該reduce會返回一個新的state,他會替換掉之前的state.最后函數會返回這個action.
combineReducers(reduces)
該函數接收一個由reduce組成的對象,該對象的每一個屬性皆為reduce.在該函數內部,他會從reduces對象中抽取每個reduce函數的名字并放入reducerKeys數組中.而reduce本身,則會通過循環,被存入finalReducers對象中.
最終該函數會返回一個新的函數作為reduce提供給createStore.
上面所說的這個reduce被執行時,會先被combineReducers中的遍歷函數遍歷finalReducers中的reduce屬性,并執行他們.并將執行他們所獲得的新state存入nextState對象中.
中間件
中間件會替換掉redux原本的createStore的內部代碼,轉而使用中間件處理.(趕工寫的,沒有怎么思考)