如果不使用 middleware 的話,Redux 的 store 只支持 同步數(shù)據(jù)流。而這也是 createStore()
所默認(rèn)提供的創(chuàng)建方式。
你可以使用 applyMiddleware()
來增強(qiáng) createStore()
。這不是必須的,但它可以讓你 以更簡便的方式來描述異步的 action。
像 redux-thunk 或 redux-promise 這樣支持異步的 middleware 都包裝了 store 的 dispatch()
方法,以此來讓你 dispatch 一些除了 action 以外的其他內(nèi)容,例如:函數(shù)或者 Promise。你所使用的任何 middleware 都可以以自己的方式解釋你 dispatch 的任何內(nèi)容,并繼續(xù)傳遞 actions 給下一個 middleware。比如,一個 Promise middleware 能夠 Promise,然后針對每個 Promise 異步地 dispatch 一對 begin/end actions。
當(dāng) middleware 鏈中的最后一個 middleware dispatch action 時,這個 action 必須是一個普通對象。這是 同步式的 Redux 數(shù)據(jù)流 開始的地方(譯注:這里應(yīng)該是指,你可以使用任意多異步的 middleware 去做你想做的事情,但是需要使用普通對象作為最后一個被 dispatch 的 action ,來將處理流程帶回同步方式)。
現(xiàn)在你已經(jīng)學(xué)完 Redux 數(shù)據(jù)流的全部內(nèi)容!可以查看 異步示例源碼,或者繼續(xù)閱讀 集成 React Router。
更多建議: