【发布时间】:2015-12-03 09:51:52
【问题描述】:
尝试了解有关 Meteor 的一些最佳实践。
我想为每个用户显示一个产品列表。我可以想出两种方法来展示每个用户的产品。
- 方法 1:仅发布此用户的产品,并在帮助程序中使用 find({}) 方法显示所有产品
- 方法 2:为所有用户发布所有产品,并在 helper 中使用 find({'userid' : this.userId}) 过滤掉当前用户的产品。
我更喜欢方法 1,因为这意味着在服务器和客户端之间发送的数据要少得多,但我看到人们也经常使用方法 2。
方法 1 是最佳实践吗?
以下源代码仅供参考。
方法一:
//Templates
Template.products.onCreated(function() {
var self = this;
self.autorun(function() {
self.subscribe('products');
});
});
Template.products.helpers({
getProducts: function () {
return Products.find({}, { sort: { lastname: -1 }});
}
});
//Publication
Meteor.publish('products', function () {
return Products.find({'userid' : this.userId});
});
方法二:
//Templates
Template.products.onCreated(function() {
var self = this;
self.autorun(function() {
self.subscribe('products');
});
});
Template.products.helpers({
getProducts: function () {
return Products.find({'userid' : this.userId}, { sort: { lastname: -1 }});
}
});
//Publication
Meteor.publish('products', function () {
return Products.find();
});
【问题讨论】:
-
“最佳实践”根据什么,谁?是为了表演吗?向客户端发送尽可能少的数据?避免多次订阅?如果它只是关于“一般最佳实践”,那么它是基于意见的,不适合 Stack Overflow。请edit您的问题成为话题。
标签: meteor