当前位置:  开发笔记 > 编程语言 > 正文

Redux&RxJS,有什么相似之处吗?

如何解决《Redux&RxJS,有什么相似之处吗?》经验,为你挑选了2个好方法。

我知道Redux是Flux的一个更好的"实现",或者更好地说它是一个简化事物(应用程序状态管理)的重新设计.

我听过很多关于反应式编程(RxJS)的内容,但我还没有去学习它.

所以我的问题是:这两种技术之间是否存在任何交集(任何共同点)或它们是互补的?......还是完全不同?



1> André Staltz..:

简而言之,它们是非常不同的库,但是有一些模糊的相似之处.

Redux是一个在整个应用程序中管理状态的工具.它通常用作UI的体系结构.可以将其视为(一半)Angular的替代品.

RxJS是一个反应式编程库.它通常用作在JavaScript中完成异步任务的工具.把它想象成Promise的替代品.


反应式编程是一种范式(工作和思考方式),从远处观察数据变化.数据不会从远处更改.

这是一个从远处改变的例子:

// In the controller.js file
model.set('name', 'George');

模型被改变从控制器.

这是从远处观察的一个例子:

// logger.js
store.subscribe(function (data) {
    console.log(data);
});

在Logger中,我们观察Store(从远处)发生的数据更改,并写入控制台.


Redux稍微使用了Reactive范例:Store是被动的.您没有从远处设置其内容.这就是store.set()Redux中没有的原因.商店从远处观察行动,并自行改变.商店允许其他人从远处观察其数据.

RxJS也使用Reactive范例,但它不是一个体系结构,它为您提供了基本的构建块Observable,以实现这种"远距离观察"模式.

总而言之,为不同的目的,非常不同的东西,但分享一些想法.


根据[官方减少文档](http://redux.js.org/docs/introduction/PriorArt.html),"他们一起工作很好."
他们一起工作得很好!有一个Redux中间件,让您有机会使用RxJS和Observables进行Redux操作.https://github.com/redux-observable/redux-observable此外,我写了一篇关于如何的博客文章:http://www.robinwieruch.de/redux-observable-rxjs/
不,你不应该一起使用它们.人们使用Rx模拟Redux.一个快速的谷歌将为您找到示例.如果您想将Rx用于您的反应式UI,请查看Cycle.js,Andre的框架.我最近一直在使用它,这太棒了.API最近发生了很大的变化,但我相信他终于开始冻结它的一部分了.
所以他们不应该一起使用,对吗?

2> cmdv..:

它们是非常不同的东西.

RxJS可用于执行反应式编程,是一个包含250多个运算符的非常全面的库.

Redux就像github repo中描述的那样"Redux是JavaScript应用程序的可预测状态容器".

Redux只是一个处理应用程序状态的工具.但相比之下,你可以在RxJS中构建一个完整的应用程序.

希望这可以帮助 :)


你的答案也很好@cmdv.当我写我的时候,我没有看到它.
欢呼,虽然不是那么深刻:) @AndréStaltz
推荐阅读
小白也坚强_177
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有