两种方式的数据绑定和反应性之间有什么区别? [英] What is difference between two way data binding and reactivity?

查看:71
本文介绍了两种方式的数据绑定和反应性之间有什么区别?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我遵循有关angular和ember.js的一些技巧时,我遇到了术语双向数据绑定". UI上显示的数据与数据库绑定,并且对一个数据库的任何更改都会快速传播到另一个数据库.当我开始学习meteor.js时,遇到了反应性"一词,对我来说,它与双向数据绑定意义相同.您能告诉我这两个术语的根本区别吗?

As i follow some tuts for angular and ember.js I came across the term Two way data binding. Where data displayed on UI are bind with database and any changes to one is quickly propagated to the other. When I started learning meteor.js i came across term "Reactivity" which for me makes same sense as two way data binding. Can you please tell me fundamental difference between these two terms?

推荐答案

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

Reactivity is in fact more general than data binding. With reactivity you can implement data binding, in a really simple way, e.g.

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();
  }
}

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

Now, every time the getData routine is called within a computation, so basically within Tracker.autorun environment, it gets recomputed. By default the meteor's collection API is implemented to be reactive, so every time fetch some data from you'r database you can be sure that it gets updated as soon as the data changes.

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

Also note, that you can use the above reactivity pattern without any database or values, so for example you can trigger and monitor events, states and so on.

这篇关于两种方式的数据绑定和反应性之间有什么区别?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆