Meteor在模板助手函数中使用fetch或find?

MrC*_*les 24 mongodb meteor

在流星模板辅助函数中,如果我返回findvs 的结果,性能,重新渲染的数量或其他任何内容是否存在差异fetch?

例如,查找方法:

Template.players.topScorers = function () {
  return Users.find({score: {$gt: 100}}, {sort: {score: -1}});
};
Run Code Online (Sandbox Code Playgroud)

或者添加一个提取:

Template.players.topScorers = function () {
  return Users.find({score: {$gt: 100}}, {sort: {score: -1}}).fetch();
};
Run Code Online (Sandbox Code Playgroud)

找到的方法是目前在文档中的方法,但我看到很多其他人使用fetch.

Xya*_*and 48

就在这里.

通过使用fetch,您可以在现场注册整个查询结果集.通过使用find以及稍后使用{{#each}}依赖项进行迭代,分别在每个文档上注册.因此,当一个文档发生更改时,只会重新呈现相关代码.使用时fetch,更改结果集中的任何文档都将重新呈现您使用的整个范围fetch.

对于小的结果集,它没有任何区别.对于频繁更改的较大集合,它可能会减慢计算速度并导致不希望的视觉伪影.

我写了一篇文章,可以帮助你理解它(虽然它没有直接回答你的问题)