两种方式数据绑定和反应性有啥区别?

Posted

技术标签:

【中文标题】两种方式数据绑定和反应性有啥区别?【英文标题】:What is difference between two way data binding and reactivity?两种方式数据绑定和反应性有什么区别? 【发布时间】:2013-12-10 05:04:50 【问题描述】:

当我关注 angular 和 ember.js 的一些 tuts 时,我遇到了术语双向数据绑定。 UI 上显示的数据与数据库绑定,对其中一个的任何更改都会快速传播到另一个。当我开始学习meteor.js 时,我遇到了术语“反应性”,这对我来说与双向数据绑定具有相同的意义。你能告诉我这两个术语的根本区别吗?

【问题讨论】:

相同的想法,只是调用方式不同。 【参考方案1】:

这篇***文章将帮助您: http://en.wikipedia.org/wiki/Reactive_programming

它基本上说,特定数据层中的数据更改会自动传播。这种范式似乎是通用术语,每个具有数据绑定/两种方式数据绑定的框架都在其上构建,并为它们的技术赋予了不同的名称。

【讨论】:

【参考方案2】:

反应性实际上比数据绑定更通用。通过反应性,您可以以非常简单的方式实现数据绑定,例如

var myAwesomeData = "some data";
var myAwseomeDependency = new Tracker.Dependency();    

var getData = function () 
  myAwesomeDependency.depend();
  return myAwesomeData;
;

var setData = function(value) 
  if (value !== myAwesomeData) 
    myAwesomeData = value;
    myAwesomeDependency.changed();
  

现在,每次在 computation 中调用 getData 例程时,基本上在 Tracker.autorun 环境中,都会重新计算它。默认情况下,meteor 的 集合 API 被实现为响应式,因此每次从您的数据库中获取一些数据时,您都可以确保它在数据更改时立即更新。

另外请注意,您可以在没有任何数据库或值的情况下使用上述反应模式,例如您可以触发和监控事件、状态等。

【讨论】:

【参考方案3】:

我的理解是双向数据绑定是反应式编程的一种形式。反应性只是意味着数据中的变化流驱动行动。更改是来自应用程序中的 DOM 和数据,还是来自其中之一,并不重要。

【讨论】:

以上是关于两种方式数据绑定和反应性有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

PLSQL绑定变量和宿主变量有啥区别

请问vuejs里的v-model 和:model有啥区别

wxPython 两种事件绑定方式的区别 self.Bind and self.button.Bind

AngularJs 中的两种方式数据绑定不使用异步回调

[微信小程序] 微信小程序下拉滚动选择器picker绑定数据的两种方式

flash里声音播放的方式是事件和数据流,这两种方式有啥特点、有啥区别?、