我已经使用Redux几个月了,对单向数据流有很好的感觉。然而,我没有受过OOP和设计模式的训练。在听完talk by Ralph E Johnson之后,我的第一React是可观察模式与Redux/Flux流非常相似,对吗?这个类比在哪里失效?
他谈到了实现可观察模式所需的接口--这是Redux/Flux架构的作者在设计这些库/架构时所考虑的那种想法吗?
我已经使用Redux几个月了,对单向数据流有很好的感觉。然而,我没有受过OOP和设计模式的训练。在听完talk by Ralph E Johnson之后,我的第一React是可观察模式与Redux/Flux流非常相似,对吗?这个类比在哪里失效?
他谈到了实现可观察模式所需的接口--这是Redux/Flux架构的作者在设计这些库/架构时所考虑的那种想法吗?
4条答案
按热度按时间z9gpfhce1#
是的,Redux商店本身是一个简单的可观察/发布-订阅实现,只有一个“更改/更新”事件发射器。动作和归约器的使用与CQRS和事件源有一些相似之处。参见https://redux.js.org/introduction/motivation和https://redux.js.org/introduction/prior-art。
unguejic2#
在Redux中,状态树使用Singleton模式,连接方法使用Observer模式。
由Andra Joy Lally拍摄。
pdkcd3nj3#
Redux是Flux模式的一个实现。Facebook提出Flux模式是因为MVC对他们来说不是很好 *。:)see link
**之前:**MVC问题:
**之后:**Flux解决方案引入了单向数据流:
有关深入的技术概述,请查看:https://facebookarchive.github.io/flux/docs/in-depth-overview
在这个22' YouTube视频Redux Origins: The History Behind the Popular Library中也讨论了一个很好的概述。
js4nwp544#
对我来说,Redux是MVC模式的React式实现。因为这里我们有Model(Store)with State,使用Observer模式监听状态变化,使用Controller调用model的方法(send Actions)。但是改变状态的过程有点不同--通过使用Reducer。但方法是一样的:发送命令->更改状态->侦听状态更改。
在《面向模式的软件体系结构》一书中对MVC模式有很好的解释。这是一个scheme从书中MVC如何工作。