Redux 中間件(MiddleWare)
Redux的數(shù)據(jù)流
首先由View讓Action Creator創(chuàng)建一個action哆姻,action通過dispatch()方法被直接派發(fā)給store,store將action和previousState傳送給Reducer做數(shù)據(jù)處理,Reducer返回一個新的state給store子房,再由store將state返回給View吃引。
類似thunk這樣的Redux中間件,它就工作在Action和Store之間扇商,可以認(rèn)為主要是對Dispatch()方法的一種增強。有了thunk中間件,dispatch()方法在被傳入action時解阅,如果發(fā)現(xiàn)action是一個函數(shù),則會執(zhí)行該函數(shù)泌霍,而不是派發(fā)給store货抄;同時,中間件thunk還給action函數(shù)傳輸了一個dispatch參數(shù)朱转,方便在action函數(shù)執(zhí)行一定操作之后蟹地,直接調(diào)用dispatch()對數(shù)據(jù)進(jìn)行修改。
- thunk本質(zhì)上是對解決異步問題的一種優(yōu)化藤为,它的思路是把異步操作放在Action中怪与。
常用的redux中間件:
redux-logger : 記錄action派發(fā)的日志
redux-saga : 拆分異步操作到一個單獨的文件來管理
saga和thunk這樣的中間件都是為了更方便的管理應(yīng)用的 Side-effects(副作用)。