5

因爲我遵循angular和ember.js的一些內容,所以我遇到了「雙向數據綁定」這個術語。在UI上顯示的數據與數據庫綁定的情況下,對其中的任何更改都會快速傳播到另一個數據庫。當我開始學習meteor.js時,我遇到了「反應性」這個術語,這對我來說和雙向數據綁定有同樣的意義。你能告訴我這兩個術語之間的根本區別嗎?雙向數據綁定和反應性有什麼區別?

+1

相同的想法,只是不同的方式來調用它們。 – Joseph

回答

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

,每次getData例程是一個computation中調用,所以基本上內Tracker.autorun環境,它就會重新計算。默認情況下,流星的集合API被實現爲反應性的,所以每次從數據庫中獲取一些數據時,您都可以確保數據一旦發生變化就會得到更新。

另請注意,您可以使用上述反應性模式而不使用任何數據庫或值,例如,您可以觸發和監視事件,狀態等。

1

這篇Wikipedia文章將幫助你: http://en.wikipedia.org/wiki/Reactive_programming

它基本上說,在特定的dataLayers數據的更改會自動傳播。這個範例似乎是通用術語,每個帶有數據綁定/雙向數據綁定的框架都在構建它,並給它們的技術一個不同的名稱。

0

我的理解是雙向數據綁定是一種反應式編程的一種形式。無功僅僅意味着數據變化的流動驅動着行動。無論是來自應用程序中的DOM還是數據,還是其中的一個,都無關緊要。

相關問題