MeteorJS 订阅机制

MeteorJS subscription mechanism

我对 meteor 中的 subscription/publication 有疑问。

当您在 meteor 中订阅发布时,客户端数据库是更新的还是服务器数据库的某一时刻的副本?

事实上,Meteor 会在订阅后更新本地数据库,还是只是服务器数据库在 T 时刻的图像,其中 T 是订阅时刻?我可以在客户端调用 Collection.find() 时获取最后的数据吗?

快速回答是,只要您的订阅仍然有效,Meteor 就会根据您在 publish() 方法中定义的规则使客户端与服务器保持同步。它不是时间 T 的副本,它从时间 T 开始,并随着服务器集合的变化而被修改。

例如:

/server/publish/people.js:

Meteor.publish('people', function() {
  return People.find();
}

/client/app.js:

Meteor.subscribe('people');

publish() 的 'People.find()' 将受到监视,对查询的任何更改都将在客户端上复制。如果您在客户端有响应式查询(例如模板助手中的People.find()),这些查询将自动重新执行并更新模板(参见Tracker)。

很好的参考给你:https://www.discovermeteor.com/blog/understanding-meteor-publications-and-subscriptions/