Các phương thức Tracker không chính xác thuộc về cốt lõi của chức năng của Meteor, hiếm khi được sử dụng trong các hướng dẫn và các sách mới bắt đầu (và nếu chúng không được giải thích rõ ràng), và kết quả được coi là "đáng sợ" hơn nhiều so với hầu hết các phần còn lại của khung công tác.Bằng tiếng Anh đơn giản, Tracker.autorun làm gì?
Tôi, vì một, chưa bao giờ xoay xở để thu xếp Tracker.autorun
thành dự án của tôi vì nó dường như không bao giờ làm được những gì được mong đợi. Đây là những gì các tài liệu nói nó:
Chạy một hàm ngay bây giờ và chạy lại bất cứ khi nào phụ thuộc của nó thay đổi.
Đối với tôi điều này có vẻ giống như một cách để làm cho nguồn không phản động phản động, nhưng sau đó bạn đến với các ví dụ, là người đầu tiên trong số đó trông như thế này:
Tracker.autorun(function() {
var oldest = _.max(Monkeys.find().fetch(), function (monkey) {
return monkey.age;
});
if (oldest)
Session.set("oldest", oldest.name);
});
Làm thế nào chính xác này khác gì so không sử dụng Tracker.autorun
? Các con trỏ đã là một nguồn phản động và làm cho các vấn đề trở nên khó hiểu hơn ví dụ tiếp theo đề cập đến một nguồn phản động khác: Phiên.
Có Tracker.autorun
chỉ hoạt động với các nguồn phản động và nếu có thì lợi ích của việc sử dụng chúng bên trong Tracker
là gì? Làm cho họ phản ứng gấp đôi?
Great câu trả lời, nó giải quyết một vấn đề khác tôi đã có nơi ở onRendered, trong Tracker.autorun, tôi không thể có được quyền truy cập vào các mẫu sử dụng this.find ('...'). Bằng cách sử dụng this.autorun và.bind (điều này) tôi đã có thể nhận được những thứ để làm việc. Câu hỏi, là .bind (điều này) cần thiết để làm một this.find ('')? Và mục đích của nó là gì? – Aaron
Vâng, đó sẽ là một câu hỏi khác trên toàn bộ nó, hãy xem: http://javascriptissexy.com/javascript-apply-call-and-bind-methods-are-essential-for-javascript-professionals/ Meteor 1.2 sẽ giới thiệu các hàm hỗ trợ và hàm Arrow của ES2015, làm cho việc sử dụng cụ thể liên kết này không liên quan. https://github.com/lukehoban/es6features#arrows – saimeunt