Redux 學習筆記
reducer 是一個純函式,接收舊的 state 和 action,返回新的 state。
(previousState, action) => newState
永遠不要在 reducer 裡做這些操作:
- 修改傳入引數;
- 執行有副作用的操作,如 API 請求和路由跳轉;
- 呼叫非純函式,如 Date.now() 或 Math.random()。
也就是說,請求是放在Action
裡面進行的,當Action
內部進行玩非同步請求完成後,可通過dispatch
傳送完成請求的Action
,讓reducer
收到,而 reducer 的作用就是返回新的帶上了請求返回資料的state
,從而達到通知繫結該state
的元件
combineReducers()
所做的只是生成一個函式,這個函式來呼叫你的一系列 reducer,每個 reducer 根據它們的 key 來篩選出 state 中的一部分資料並處理,然後這個生成的函式再將所有 reducer 的結果合併成一個大的物件。