Redux的簡單概念介紹
Redux是遵循只儲存應用的真相單一來源的原則設計的,如果你瞭解後端EventSourcing原理,應該知道兩者都是遵循這一原則設計的,對於Redux每個動作啟用一個reducer,reducer產生新的狀態並儲存。如下圖:
[img index=1]
在Redux中, 每個應用狀態都儲存在全域性狀態,這個全域性狀態是不可變的,能夠由View Provider透過邏輯訪問,當使用者觸發一個互動,比如滑鼠點按,這將觸發一個動作Action到系統,這是透過使用一個被傳遞給View Provider回撥函式實現的,這個動作action將被Redux的儲存獲取, 透過其中介軟體觸發一系列轉換,最後傳遞給一系列有前後順序的reducer,透過reducer修改全域性狀態。
Redux核心概念是:
儲存store,
action動作
修改狀態的reducer函式
前面兩個比較容易理解,我們看看reducer函式:
reducer是一個用於狀態切換的純函式,能夠獲得當前狀態和當前動作action作為其輸入,輸出則是下一個狀態,很重要概念是reducer是純函式,沒有副作用,每次你提供同樣輸入,你總是獲得同樣的輸出。
如果只有一個reducer是不可能針對每個動作action管理整個狀態切換的,而是透過多個reducer以及相互組合實現這點的。每個action對應一個reducer,同時還有一個組合reducer管理這些子reducer:當一個action進來時,組合reducer首先獲取這個動作然後傳遞這個動作給每個小的子reducer函式,每個小的子reducer函式會檢查這個動作,決定是否修改對應的應用狀態中的一部分,如果修改了,就是產生新狀態。
相關文章
- 簡單介紹redux的中介軟體Redux
- javascript遞迴概念簡單介紹JavaScript遞迴
- javascript中的閉包概念簡單介紹JavaScript
- Redux 包教包會(一):介紹 Redux 三大核心概念Redux
- javascript物件導向程式設計概念簡單介紹JavaScript物件程式設計
- 關於什麼是jsonp概念簡單介紹JSON
- Webpack 的簡單介紹Web
- Promise的簡單介紹Promise
- CFRunloopObserverRef 的簡單介紹OOPServer
- UML簡單介紹(十二)——活動圖基本概念與解析
- SVG簡單介紹SVG
- HTML簡單介紹HTML
- ActiveMQ簡單介紹MQ
- HTML 簡單介紹HTML
- JavaScript 簡單介紹JavaScript
- CSS 簡單介紹CSS
- SCSS 簡單介紹CSS
- UICollectionView 簡單介紹UIView
- css簡單介紹CSS
- SpringMvc的簡單介紹SpringMVC
- javascript的this用法簡單介紹JavaScript
- noscript的作用簡單介紹
- ORACLE SEQUENCE的簡單介紹Oracle
- JavaScript 引擎和 Just-in-Time 編譯概念,Hot Function 的簡單介紹JavaScript編譯Function
- UML簡單介紹(十一)——協作圖的概念與例項完全解析
- RPC簡單介紹RPC
- spark簡單介紹(一)Spark
- Flutter key簡單介紹Flutter
- Python簡單介紹Python
- <svg>元素簡單介紹SVG
- Git_簡單介紹Git
- JSON簡單介紹JSON
- 簡單介紹克隆 JavaScriptJavaScript
- 簡單介紹 ldd 命令
- javascript物件簡單介紹JavaScript物件
- CSS OOCSS簡單介紹CSS
- CSS SMACSS簡單介紹CSSMac
- CSS BEM簡單介紹CSS