Quali sono i pro/contro tra l'uso di Deps.autorun
o Collection.observe
per mantenere un widget di terze parti in sincrono con uno Meteor.Collection
reattivo.Meteor `Deps.autorun` vs` Collection.observe`
Ad esempio, sto usando jsTree per visualizzare visivamente un albero di directory che ho memorizzato nel mio MongoDB. Sto usando questo codice per rendere più reattiva:
// 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();
}
});
Quali sono i vantaggi/svantaggi di questo metodo vs un Deps.autorun
chiamata che sarebbe simile a questa: (non testati)
Deps.autorun(function() {
jsonData = FileTree.find().fetch();
$.jstree.reference('#fileTree')({'core': {'data': jsonData} });
});
Questo è solo un esempio Sto chiedendo i pro/contro in generale, non per questo specifico caso d'uso.
In altre parole, "Tracker.autorun" funziona con qualsiasi cosa possa registrare una dipendenza, ma "observChanges" sono hook più specifici che funzionano solo con i cursori di mongo. – BonsaiOak
@BonsaiOak Sì, Tracker.autorun è il reps magico che eseguirà nuovamente l'intero metodo su ogni modifica delle dipendenze registrata nel suo metodo e osservaChanges sono hook di eventi javascriptey molto specifici alle modifiche del database a query specifiche – Akshat