一、中間件
中間件的特點是:
中間件接口
在Redux框架中,中間件處理的是action對象,而派發(fā)action對象的就是Store上的dispatch函數(shù),action對象在進入reducer之前,會經(jīng)歷中間件的管道。在這個中間件管道中,每個中間件都會接收到action對象,在處理完畢之后,就會把action對象交給下一個中間件來處理,只有所有的中間件都處理完action對象之后,才輪到reducer來處理action對象,但是如果某個中間件覺得沒有必要繼續(xù)處理這個action對象了,就不會把action對象交給下一個中間件,對這個action對象的處理就此為止,也就輪不到reducer上場了。
以action為參數(shù)的函數(shù)對傳入的action對象進行處理,因為JavaScript支持閉包,在這個函數(shù)里可以訪問上面兩層函數(shù)的參數(shù),所以可以根據(jù)需要做很多事情,包括以下功能:
使用中間件
使用中間件有兩種方法,兩種方法都離不開Redux提供的applyMiddleware函數(shù)。
(1)用Redux提供的applyMiddleware來包裝createStore產(chǎn)生一個新的創(chuàng)建Store的函數(shù),以使用redux-chunk中間件為例,代碼如下:
(2)把applyMiddleware的結(jié)果當(dāng)做Store Enhancer,和其他Enhancer混合之后作為createStore參數(shù)傳入。以同時使用redux-thunk和Redux Devtools增強器為例,代碼如下:
Promise中間件
實現(xiàn)異步action對象還有一個方法是利用promise,promise更加適用于輸入輸出操作,而且fetch函數(shù)返回的結(jié)果就是一個promise對象。對比redux-chunk和promise可以發(fā)現(xiàn),如果應(yīng)用redux-chunk,實際發(fā)起異步操作的語句是在中間件中調(diào)用的,而如果應(yīng)用promise中間件,異步操作是在中間件之外引發(fā)的,因為只有異步操作發(fā)生了才會有promise對象,而promise中間件只是處理這個對象而已。
二、Store Enhancer
中間件可以用來增強Redux store的dispatch方法,但也僅限于dispatch方法,也就是從dispatch函數(shù)調(diào)用到action對象被reducer處理的這個過程中的操作,如果想要對redux store進行更深層次的增強定制,就需要使用Store Enhancer。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
網(wǎng)站題目:React總結(jié)篇之九_擴展Redux-創(chuàng)新互聯(lián)
文章起源:http://www.rwnh.cn/article18/dgchgp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗、小程序開發(fā)、網(wǎng)站制作、網(wǎng)頁設(shè)計公司、網(wǎng)站改版、域名注冊
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容