react將dom解耦,不用直接操作dom,使用了狀態機制,當狀態改變時視圖就會相應更新。我們知道在react中,父組件可以將一些狀態傳遞給子組件,讓子組件的視圖相應更新,這時我們會發現,只有有關聯的組件才可以依次傳遞,那些沒有父組件與子組件關係的組件,這些組件之間的某些狀態是共用的,這時就需要re ...
react將dom解耦,不用直接操作dom,使用了狀態機制,當狀態改變時視圖就會相應更新。我們知道在react中,父組件可以將一些狀態傳遞給子組件,讓子組件的視圖相應更新,這時我們會發現,只有有關聯的組件才可以依次傳遞,那些沒有父組件與子組件關係的組件,這些組件之間的某些狀態是共用的,這時就需要redux了。
redux的主要設計思想:1)web應用是一個狀態機,視圖與狀態是一一對應的 2)所有的狀態都保存在一個對象里
redux包含兩個步驟,發起Action和產生新state的reducer
Action的函數可以是自己寫的一個請求後臺數據的函數,也可以使用react-actions中的createAction,與後臺無交互,只是傳入更新的state
Reducer的函數接收Action傳入的state,通過對state操作返回新的state,在需要該state的組件使用該reducer更新state
redux的設計思想之一就是所有的數據都在一個對象里,那麼當reducer過於繁多時,就會導致代碼難於維護,所以我們可以拆分成幾個小的reducer,最後將這些reducer合併成大的reducer,redux提供了combineReducers函數可以將子reducer合併成一個state對象