双向数据绑定和反应性有什么区别?

mon*_*onk 5 data-binding reactive-programming ember.js angularjs meteor

当我按照angular和ember.js的一些内容时,我遇到了双向数据绑定这个术语.UI上显示的数据与数据库绑定,对一个数据的任何更改都会快速传播到另一个.当我开始学习meteor.js时,我遇到了术语"Reactivity",这对我来说与双向数据绑定有同样的意义.你能告诉我这两个术语的根本区别吗?

Tom*_*cik 8

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

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();
  }
}
Run Code Online (Sandbox Code Playgroud)

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

另请注意,您可以使用上述反应模式而无需任何数据库或值,因此您可以触发和监视事件,状态等.