小编给大家分享一下反应中间件有什么用,希望大家阅读完这篇文章后大所收获、下面让我们一起去探讨吧!
在反应中,中间件就是一个函数,对商店。派遣方法进行了改造,在发出行动和执行减速器这两步之间,添加了其他功能,常用的中间件都有现成的,只要引用别人写好的模块即可。
引用><强>一、中间件的概念强>
为了理解中间件,让我们站在框架作者的角度思考问题:如果要添加功能,你会在哪个环节添加?
(1)减速机:纯函数,只承担计算国家的功能,不合适承担其他功能,也承担不了,因为理论上,纯函数不能进行读写操作。
(2)观点:与国家一一对应,可以看作状态的视觉层,也不合适承担其他功能。
(3)行动:存放数据的对象,即消息的载体,只能被别人操作,自己不能进行任何操作。
想来想去,只有发送行动的这个步骤,即store.dispatch()方法,可以添加功能。举例来说,要添加日志功能,把动作和状态打印出来,可以对商店。调度进行如下改造。
let next =, store.dispatch; 时间=store.dispatch function dispatchAndLog(行动),{ console.log才能(& # 39;调度# 39;,,动作); 下才能(行动); console.log才能(& # 39;next 国家# 39;,,store.getState ()); }上面代码中,对存储。调度进行了重定义,在发送行动前后添加了打印功能。这就是中间件的雏形。
中间件就是一个函数,对商店。派遣方法进行了改造,在发出行动和执行减速器这两步之间,添加了其他功能。常用的中间件都有现成的,只要引用别人写好的模块即可。
<强>二,中间件的用法强>
本教程不涉及如何编写中间件,因为常用的中间件都有现成的,只要引用别人写好的模块即可。比如,上一节的日志中间件,就有现成的redux-logger模块。这里只介绍怎么使用中间件。
import {applyMiddleware的不同之处是,createStore },得到& # 39;回来的# 39;; import createLogger 得到& # 39;redux-logger& # 39;; const logger =, createLogger (); , const store =, createStore ( 减速机,才能 applyMiddleware才能(日志) );上面代码中,redux-logger提供一个生成器createLogger,可以生成日志中间件记录器。然后,将它放在applyMiddleware方法之中,传入createStore方法,就完成了store.dispatch()的功能增强。
这里有两点需要注意:
(1) createStore方法可以接受整个应用的初始状态作为参数,那样的话,applyMiddleware就是第三个参数了。
const store =, createStore ( 减速机,才能 initial_state才能, applyMiddleware才能(日志) );(2)中间件的次序有讲究。
const store =, createStore ( 减速机,才能 applyMiddleware才能(铛,承诺,,记录器) );上面代码中,applyMiddleware方法的三个参数,就是三个中间件。有的中间件有次序要求,使用前要查一下文档。比如,记录器就一定要放在最后,否则输出结果会不正确。
<强>三,applyMiddlewares() 强>
看到这里,你可能会问,applyMiddlewares这个方法到底是干什么的?
它是终极版的原生方法,作用是将所有中间件组成一个数组,依次执行。下面是它的源码。
export default function applyMiddleware(…中间件)),{ return 才能;(createStore),=祝辞,(preloadedState,减速机,还以为;增强剂),=祝辞,{ ,,,var store =, createStore (preloadedState,减速机,还以为;增强剂); ,,,var dispatch =, store.dispatch; ,,,var chain =, []; , ,,,var middlewareAPI =, { ,,,,,getState:, store.getState, ,,,,,调度:,(动作),=祝辞,调度(行动) ,,,}; ,,,chain =, middlewares.map (middleware =祝辞,中间件(middlewareAPI)); ,,,dispatch =,组成连锁(…)(store.dispatch); , ,,,return {…商店,,分派} ,,} }上面代码中,所有中间件被放进了一个数组链,然后嵌套执行,最后执行存储。调度。可以看到,中间件内部(middlewareAPI)可以拿到getState和调度这两个方法。
<强>四、异步操作的基本思路强>
理解了中间件以后,就可以处理异步操作了。
同步操作只要发出一种行动即可,异步操作的差别是它要发出三种行动。
反应中间件有什么用