3.4 Redux-Saga
原 Redux 流程為先對 Component 做 connect
,之後便可使用 Store 的 dispatch
觸發預先在 Reducer 中寫好的邏輯。
而 Redux - Saga 的流程同樣是先對 Component 做 connect
,但 dispatch
觸發的事件為 React - Saga 預先訂閱的名稱,在該事件裡才依照流程去觸發需執行的 Reducer 邏輯。
原本被 dispatch
觸發的 Method 從 Reducer 變成 Redux - Saga 。
function * --> Generator Function
Generator Function 能夠配合 yield
在執行的過程中喊停。
yield
call 執行function yield call(function, arg1, arg2)
put 觸發dispatch
Call vs Fork
saga 中 call 和 fork 都是用來執行指定函数 fn,區別在於:
call effect 會阻塞當前 saga 的執行,直到被調用函数 fn 返回结果,才會執行下一步代碼。
fork effect 則不會阻塞當前 saga,會立即返回一個 task 對象。
Last updated