Redux使用探究

動機

現在用React或者vue開發單頁應用愈來愈廣泛。當項目愈來愈大,管理不斷變化的state愈來愈困難。可能散落在各處。須要一個統一的容器來管理各類state
ReduxJavaScript 狀態容器。 它和reactvue無直接關係。只是恰好二者能夠結合起來發揮不錯的。vue

三大原則

Redux 能夠用這三個基本原則來描述:react

單一數據源

整個應用的 state 被儲存在一棵 object tree 中,而且這個 object tree 只存在於惟一一個 storeredux

State 是隻讀的

唯一改變 state 的方法就是觸發 action,action 是一個用於描述已發生事件的普通對象。app

使用純函數來執行修改

爲了描述 action 如何改變 state tree ,你須要編寫 reducers函數

Reducer 只是一些純函數,它接收先前的 stateaction,並返回新的 state。剛開始你能夠只有一個 reducer,隨着應用變大,你能夠把它拆成多個小的 reducers,分別獨立地操做 state tree 的不一樣部分,由於 reducer 只是函數,你能夠控制它們被調用的順序,傳入附加數據,甚至編寫可複用的 reducer 來處理一些通用任務,如分頁器。spa

API 文檔

Redux 的 API 很是少。code

記住,Redux 只關心如何管理 state。在實際的項目中,你還須要使用 UI 綁定庫如 react-redux。實際上就是幫你處理了state變化時的監聽中間件

createStore

產生store對象

combineReducers

把多個小reducers組合成一個reducer事件

applyMiddleware(...middlewares)

action中間件

bindActionCreators

產生能夠不用dispatch的action (感受用處並不大)

compose

把多箇中間件組合在一塊兒

相關文章
相關標籤/搜索