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

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

【问题讨论】:

  • 相同的想法,只是调用方式不同。

标签: angularjs data-binding ember.js meteor reactive-programming


【解决方案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 和数据,还是来自其中之一,并不重要。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-12
        • 1970-01-01
        • 2013-05-23
        • 2013-08-07
        • 2011-06-27
        相关资源
        最近更新 更多