1. 程式人生 > >總結下Redux

總結下Redux

middle 實現原理 對象 reac 函數式 實現 通過 ddl imm

  1. Redux 和 React 沒有直接關系,它瞄準的目標是應用狀態管理。
  2. 核心概念是 Map/Reduce 中的 Reduce。且 Reducer 的執行是同步,產生的 State 是 Immutable 的。
  3. 改變 State 只能通過向 Reducer dispatch actions 來完成。
  4. State 的不同字段,可以通過不同的 Reducers 來分別維護。combineReducers 負責組合這些 Reducers,前提是每個 Reducer 只能維護自己關心的字段。
  5. Action 對象只能是 Javascript Plain Object,但是通過在 store 上裝載 middleware
    ,則可以任意定義 action 對象的形式,反正會有特定的 middleware 負責將此 action 對象變為 Javascript Plain Object。可以以middleware 鏈條為集中點實現很多控制邏輯,例如 Log,Undo, ErrorHandler 等。
  6. Redux 僅僅專註於應用狀態的維護,reducerdispatch/middleware 是兩個常用擴展點、Higher-order Store 則僅針對需要擴展全部 Store 功能時使用。
  7. react-redux 是 Redux 針對 React/React-Native 的 Binding,connect/selector
    是擴展點,負責將 store 中的狀態添加到 React componentprops 中。
  8. Redux 借用了很多函數式編程的思想,了解函數式編程會利於理解其實現原理,雖然使用它不需要了解很多函數式編程的概念。和 Flux 相比,Redux 的概念更精簡、約定更嚴格、狀態更確定、而是擴展卻更靈活。

總結下Redux