Eon*_*nil 45 reactive-programming observer-pattern
最近我听到了很多关于反应式编程的术语.但是当我搜索它时,我发现的只是观察者模式的一些相似之处.实际上,我发现他们之间没有任何不同.它们之间的概念差异以及为什么反应式编程这个术语会被嗡嗡声?
Mic*_*rry 46
反应式编程是通过执行程序轻松传播数据流中的更改的一般范例.它不是一个特定的模式或实体本身,它是一个想法,或编程风格(如面向对象的prorgamming,函数式编程等).松散地说,它是x在一个位置更改或更新时的概念,即取决于在x其他各个地方重新计算和更新的价值,并且最小化.
传统上,你几乎总是看到上面的模式,其中x是一个GUI事件,这就是观察者模式的来源 - 它提供了一种通用的方法来提供"触发器",以便在发生这种变化时更新信息(或者,在更常见的OO术语中,当"事件"被触发时.)从这个意义上讲,它提供了一种简单的机制,允许在OO(有时是其他)样式语言中发生反应式编程的基本概念.
反应式编程的更全面概念在某种程度上扩展了传统的观察者模式 - 您可以创建和订阅此类事件的流,而不是仅仅针对单个事件(例如用户点击)触发特定操作,并设置基于运行的操作该流中发生的事件.
小智 8
我是反应式编程方面的专家,我正在积极开发反应式编程的新工具。比如因果关系(https://github.com/erobwen/causality)
一种简单的说法是,反应式编程不仅仅是使用观察者模式及其“回调”和“侦听器”。对于反应式编程,假设平台管理所有数据和 UI 依赖项的自动化程度更高。因此,作为一般经验法则,如果使用观察者模式,那么它就不是反应式系统。
另一种判断编程范式是否为响应式的方法是,您是否编写了更新数据结构和 UI 组件的代码,或者您编写的代码看起来好像只是首先创建了 UI 组件。因此:
非反应式编程:创建 UI 的代码 + 更新 UI 的代码。
反应式编程:创建 UI 的一段代码(也将用于更新)
例如,更新 UI 的一种非响应式方法是使用事件侦听器来侦听按钮的单击,如果用户单击该按钮,则您会在 DOM 中找到合适的位置,在该位置设置属性,添加一个孩子,或添加一个班级,以便让事情发生。
做同样的事情reactivley 是将按钮状态绑定到视图模式变量,然后依次将要修改的属性绑定到该视图模式变量。然后,当用户按下按钮时,系统会自动知道如何更新 DOM。
反应式编程的现代和流行示例是 React 和 Angular。例如,使 React 具有反应性的事情是每个组件都声明其“渲染”函数来构建组件的 UI。关键是这个渲染函数将在组件初始渲染时使用,而且在数据/UI 状态的变化将导致 UI 修改时使用。
| 归档时间: |
|
| 查看次数: |
9904 次 |
| 最近记录: |