要說Redux,我們先得來討論一下只用React會造成什么問題?
React
React 更新視圖的方法是更新組件的state之后, 從而重新 render 組件的 dom。這樣的方式可以把子組件重新 render。然而子組件的state 無論怎么更新,都不會影響到父組建的state,所以在React里面, 無法做到向上傳遞值,組件是不能修改父組件的state的。
Redux
而Redux 的設(shè)計是可以解決這個問題的。
Redux 將所有 state 存放在一個 根 state 里面,這個state 存儲了整個頁面的狀態(tài)。所有的React 組件需要的值都從這里去取,然后需要更新的時候,則通過dispatch 一個 action,用這個action來更新 Redux 的 state。 這樣的話,可以實現(xiàn)子組件重新 render 父組建。
Redux-observable
至于 Redux-observable
官網(wǎng)的簡介如下
基于 RxJS 5 的 Redux 中間件 。 通過組合和取消異步動作去創(chuàng)建副作用。
RxJS 5-based middleware for Redux. Compose and cancel async actions to create side effects and more.
Epic 是 redux-observable 的核心原語。
它是一個函數(shù),接收 actions 流作為參數(shù)并且返回 actions 流。 Actions 入, actions 出.
image.png