您好,登錄后才能下訂單哦!
一、中間件
中間件的特點是:
中間件接口
在Redux框架中,中間件處理的是action對象,而派發action對象的就是Store上的dispatch函數,action對象在進入reducer之前,會經歷中間件的管道。在這個中間件管道中,每個中間件都會接收到action對象,在處理完畢之后,就會把action對象交給下一個中間件來處理,只有所有的中間件都處理完action對象之后,才輪到reducer來處理action對象,但是如果某個中間件覺得沒有必要繼續處理這個action對象了,就不會把action對象交給下一個中間件,對這個action對象的處理就此為止,也就輪不到reducer上場了。
以action為參數的函數對傳入的action對象進行處理,因為JavaScript支持閉包,在這個函數里可以訪問上面兩層函數的參數,所以可以根據需要做很多事情,包括以下功能:
使用中間件
使用中間件有兩種方法,兩種方法都離不開Redux提供的applyMiddleware函數。
(1)用Redux提供的applyMiddleware來包裝createStore產生一個新的創建Store的函數,以使用redux-chunk中間件為例,代碼如下:
(2)把applyMiddleware的結果當做Store Enhancer,和其他Enhancer混合之后作為createStore參數傳入。以同時使用redux-thunk和Redux Devtools增強器為例,代碼如下:
Promise中間件
實現異步action對象還有一個方法是利用promise,promise更加適用于輸入輸出操作,而且fetch函數返回的結果就是一個promise對象。對比redux-chunk和promise可以發現,如果應用redux-chunk,實際發起異步操作的語句是在中間件中調用的,而如果應用promise中間件,異步操作是在中間件之外引發的,因為只有異步操作發生了才會有promise對象,而promise中間件只是處理這個對象而已。
二、Store Enhancer
中間件可以用來增強Redux store的dispatch方法,但也僅限于dispatch方法,也就是從dispatch函數調用到action對象被reducer處理的這個過程中的操作,如果想要對redux store進行更深層次的增強定制,就需要使用Store Enhancer。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。