Jakie są zalety/wady między używaniem Deps.autorun
lub Collection.observe
do synchronizowania widżetu innej firmy z reaktywnym Meteor.Collection
.Meteody `Deps.autorun` kontra` Collection.observe`
Na przykład, używam jsTree wizualnie pokazują drzewo katalogów że mam zapisany w moim MongoDB. Używam tego kodu, aby to reaktywny:
// 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();
}
});
Jakie są plusy/minusy stosowania tej metody w Deps.autorun
vs rozmowy, które wyglądają mniej więcej tak: (niesprawdzone)
Deps.autorun(function() {
jsonData = FileTree.find().fetch();
$.jstree.reference('#fileTree')({'core': {'data': jsonData} });
});
ten to tylko przykład. Pytam o plusy/minusy w ogóle, nie w tym konkretnym przypadku użycia.
Innymi słowy, 'Tracker.autorun' działa z czymkolwiek, co może zarejestrować zależność, ale' zaobserwujChanges' są bardziej specyficznymi hakami, które działają tylko z kursorami mongo. – BonsaiOak
@BonsaiOak Tak, Tracker.autorun to magiczne powtórzenia, które będą ponownie uruchamiać całą metodę na każdej zmianie zależności zarejestrowanej w jego metodzie i obserwowaćChanges są bardzo specyficznymi hookami zdarzeń javascriptey do zmian w bazie danych dla konkretnych zapytań – Akshat