使用Deps.autorun
或Collection.observe
保持第三方小工具與反應Meteor.Collection
同步之間有什麼優點/缺點。流星`Deps.autorun` vs`Collection.observe`
例如,我使用jsTree以可視方式顯示我存儲在MongoDB中的目錄樹。我使用這個代碼,使其反應:
// automatically reload the fileTree if the data changes
FileTree.find().observeChanges({
added: function() {
$.jstree.reference('#fileTree').refresh();
},
changed: function() {
$.jstree.reference('#fileTree').refresh();
},
removed: function() {
$.jstree.reference('#fileTree').refresh();
}
});
什麼是使用這種方法VS一個Deps.autorun
電話會看起來像這樣的優點/缺點:(未經測試)
Deps.autorun(function() {
jsonData = FileTree.find().fetch();
$.jstree.reference('#fileTree')({'core': {'data': jsonData} });
});
這只是一個例子。我一般會問利弊,而不是針對這個特定的用例。
換句話說,「Tracker.autorun」可以處理任何可以註冊依賴關係的東西,但是「observeChanges」是更具體的鉤子,只能用於mongo遊標。 – BonsaiOak 2014-12-24 15:41:16
@BonsaiOak是的,Tracker.autorun是一個神奇的代表之一,它將重新運行整個方法上的每個依賴項更改註冊在它的方法和觀察更改是非常具體的javascriptey事件掛鉤到數據庫更改特定的查詢 – Akshat 2014-12-24 16:02:02