Bon*_*Oak 23 json mongodb reactive-programming jstree meteor
什么是使用的优点/缺点Deps.autorun或Collection.observe让第三方插件同步与反应Meteor.Collection.
例如,我使用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();
}
});
Run Code Online (Sandbox Code Playgroud)
使用此方法的优点/缺点与Deps.autorun看起来像这样的调用有什么关系:(未经测试)
Deps.autorun(function() {
jsonData = FileTree.find().fetch();
$.jstree.reference('#fileTree')({'core': {'data': jsonData} });
});
Run Code Online (Sandbox Code Playgroud)
这只是一个例子.我一般都在询问优缺点,而不是这个具体的用例.
Aks*_*hat 27
Deps.autorun,现在Tracker.autorun是一个反应计算块.而observeChanges提供了一些回调,以便更改某些内容.
当您使用Deps.autorun时,function() {...}每次反应变量或文档发生变化时,整个块都将以任何方式(更新,删除或插入)或任何其他反应变量更改重新运行.
observeChanges回调更精细,并根据查询触发添加,更改或删除的回调.
根据您的上述代码,实际上两者都是相同的.如果你在Deps.autorun块中有更多的反应变量,那么observeChanges这样做的方式会更有效.
一般来说,第一种风格更有效,但是当你的代码高于它们时,它们几乎都是相同的,这取决于你的偏好.
| 归档时间: |
|
| 查看次数: |
6548 次 |
| 最近记录: |