关于redux-saga:redusaga的基本使用及相关原理

redux-saga是什么?家喻户晓, redux-saga 是一个中间件。所谓的中间件就是给redux提供额定性能的, 简而言之 , 也就是对redux中的dispatch, 加上一些性能, 进行包装。 咱们为什么要应用redux-saga呢?在redux中, 如果咱们dispatch一个action之后 , 会调用reducer函数 。 function dispatch(action) { state = reducer(state, action); listeners.forEach(l => l()); return action; }而后reducer是一个纯函数, 没有副作用 ,当咱们须要进行异步申请的时候,这个时候redux就不够用了 , 因而咱们须要借助于redux-saga。 redux-saga如何进行裁减redux的性能呢?中间件的根本格局咱们在裁减中间件的时候会应用一个applyMiddleware的函数, 对原有的store.dispatch进行裁减。 function applyMiddleare(...middlewares) { return function (createStore) { return function (reducer, preloadedState) { let store = createStore(reducer, preloadedState); let dispatch; let middlewareAPI = { getState: store.getState, dispatch: (action) => dispatch(action), }; let chain = middlewares.map((middleware) => middleware(middlewareAPI)); dispatch = compose(...chain)(store.dispatch); return { ...store, dispatch, }; }; };}//compose函数是:function compose(funcs){return funcs.map((a, b) => (...args) => a(b(...args)))}由上面这段代码能够看出一个中间件, 是承受一个middleAPI也就是store,以及上一次革新后的dispatch, 而后返回一个新的革新后的dispatch。 ...

August 17, 2022 · 3 min · jiezi