Методы Tracker точно не относятся к ядру функциональности Meteor, редко используются в учебниках и книгах-новичках (и если они не очень хорошо объясняются), и, как следствие, они считаются намного более "страшными" ", чем большая часть остальной части фреймворка.
Я, например, никогда не мог спорить Tracker.autorun
в моем проекте, поскольку он никогда не делает того, чего от него ожидают. Это то, что говорят документы:
Запустите функцию сейчас и повторите ее позже, когда ее зависимости изменение.
Для меня это звучит как способ реакции реакционеров, не являющихся реакционными, но затем вы приходите к примерам, первый из которых выглядит следующим образом:
Tracker.autorun(function () {
var oldest = _.max(Monkeys.find().fetch(), function (monkey) {
return monkey.age;
});
if (oldest)
Session.set("oldest", oldest.name);
});
Как именно это отличается от использования Tracker.autorun
? Курсоры уже являются реакционным источником, и для того, чтобы сделать вещи более запутанными , следующий пример касается другого реакционного источника: Сеансы.
Работает ли Tracker.autorun
только с реакционными источниками, и если да, то в чем преимущество использования их внутри Tracker
? Сделать их вдвойне реакционными?