扫码关注官方订阅号
redux里面,异步要用middleware来处理。这个怎么理解?比如我发一个ajax,然后在回调里面去dispatch(action),这样不可以吗?为什么要用到middleware?
认证高级PHP讲师
你的方法是可以的,只要能拿到dispatch方法即可。middleware本质上是对dispatch的替换。支持异步action的中间件thunk的主要作用是给你的action creator注入dispatch,让你在异步的回调中能够拿到dispatch并使用。
楼上答案思路是对的,但是我认为,其实middleware本质是对原本store中的dispatch方法的强化。如果你需要一些额外的功能,比如打印用户请求日志,就可以对dispatch方法进行强化。
dispatch
redux是flux的一个实现,也只是一个模式的实现。更多用户需要的定制化的东西,就需要这个中间件的东东了。
为redux提供中间件的接口是很聪明的,这样就会产生无数优秀的中间件,也在另一方面促进了框架的繁荣。
所以对你本身的代码来讲,这么做是可以的,但是redux的设计者显然考虑的更多。
middleware 本质是一个多层函数的柯里化,主要作用在于两点:
可以对数据流做集中的处理,而且可以在多个 middleware 之间串联
通过注入的 dispatch 和 getState 可以方便的访问到当前的状态,可以对其做额外进行处理,也能异步的 dispatch 当前的 action
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
你的方法是可以的,只要能拿到dispatch方法即可。
middleware本质上是对dispatch的替换。
支持异步action的中间件thunk的主要作用是给你的action creator注入dispatch,让你在异步的回调中能够拿到dispatch并使用。
楼上答案思路是对的,但是我认为,其实middleware本质是对原本store中的
dispatch方法的强化。如果你需要一些额外的功能,比如打印用户请求日志,就可以对dispatch方法进行强化。redux是flux的一个实现,也只是一个模式的实现。更多用户需要的定制化的东西,就需要这个中间件的东东了。
为redux提供中间件的接口是很聪明的,这样就会产生无数优秀的中间件,也在另一方面促进了框架的繁荣。
所以对你本身的代码来讲,这么做是可以的,但是redux的设计者显然考虑的更多。
middleware 本质是一个多层函数的柯里化,主要作用在于两点:
可以对数据流做集中的处理,而且可以在多个 middleware 之间串联
通过注入的 dispatch 和 getState 可以方便的访问到当前的状态,可以对其做额外进行处理,也能异步的 dispatch 当前的 action