Redux 原始碼解讀(三)之 中介軟體機制

2021-09-27 03:55:19 字數 1963 閱讀 3458

系列文章

redux 實現

react-redux 實現

redux中介軟體的應用與實現

寫乙個中介軟體

中介軟體其實是對某些功能的乙個增強,類似前置處理,

import

from

'redux'

import rootreducer from

'./store/reducer'

import promise from

'redux-promse'

import createlogger from

'redux-logger'

const middleware =

[createlogger,promise]

const store=

createstore

(rootreducer,

(...middleware)

)

export

default

function

createstore

(reducer,preloadestate,enhancer)

return

enhancer

(createstore)

(reducer, preloadedstate)

}//...

}

function

(...middlewares)

; chain=middlewares.

map(middleware=>

middleware

(middlewareapi));

dispatch=

compose

(...chain,store.dispatch)

;return}}

}

function

compose

(...funcs)

if(funcs.length===1)

return funcs.

reduce

((a,b)

=>

(...args)

=>a(

b(...args)))

}

關於 compose 簡單實現

const

compose

=(a,b)

=>

(...args)

=>a(

b(...args));

let data=

parsefloat

('3.56');

let number=math.

round

(data)

;console.

log(number)

;let num=

compose

(math.round,parsefloat)

;console.

log(

num(

'3.56'

)===number)

固定模式如下:

const

middleware

= store => next => action =>

//返回乙個增加日誌的 全新dispatch

return

(action)

=>

}

const

promise

= store => next => action =>

return

next

(action);}

;

解讀 Redux 中介軟體的原理

redux 的中介軟體提供的是位於action被發起之後,到達reducer之前的擴充套件點,換而言之,原本view action reducer store的資料流加上中介軟體後變成了view action middleware reducer store,在這一環節我們可以做一些 的操作,如 非...

解讀 Redux 中介軟體的原理

redux 的中介軟體提供的是位於action被發起之後,到達reducer之前的擴充套件點,換而言之,原本view action reducer store的資料流加上中介軟體後變成了view action middleware reducer store,在這一環節我們可以做一些 的操作,如 非...

redux深入理解之中介軟體 middleware

本文 請看本人github,關於redux運用,請看之前一篇文章 reduce 方法接收乙個函式作為累加器 accumulator 陣列中的每個值 從左到右 開始縮減,最終為乙個值。arr.reduce callback,initialvalue 關於reduce的用法,這裡不再做多述,可以去這裡檢...