迁移到 Meteor 2.10

如何将您的应用程序迁移到 Meteor 2.10。

Meteor 2.10 中的大多数新功能要么直接在后台应用(以向后兼容的方式),要么是可选的。有关更改的完整细分,请参阅变更日志

话虽如此,您应该实现一些项目,以便将来更容易。

异步 Tracker

将您的异步调用包装在Tracker.withComputation方法中将确保即使是异步调用也是响应式的。

之前,如果您使用如下代码,它只会运行一次,并且不会是响应式的

Tracker.autorun(async function example1() {
  let asyncData = await asyncDataFunction();
  let users = Meteor.users.find({}).fetch();
});

在 2.10 之前,要使其响应式,您需要在异步调用之前调用响应式数据源

Tracker.autorun(async function example2() {
  let users = Meteor.users.find({}).fetch();
  let asyncData = await asyncDataFunction();
});

现在,您可以通过将异步调用包装在Tracker.withComputation方法中使这两个示例都具有响应式。


Tracker.autorun(async function example1(computation) {
  let asyncData = await Tracker.withComputation(computation, () => asyncDataFunction());
  let users = Meteor.users.find({}).fetch();
});

Tracker.autorun(async function example2(computation) {
  let users = await Tracker.withComputation(computation, () => Meteor.users.find({}).fetch());
  let asyncData = await Tracker.withComputation(computation, () => asyncDataFunction());
  
});

// using async mongo api
Tracker.autorun(async function example2(computation) {
  let asyncData = await Tracker.withComputation(computation, () => asyncDataFunction());
  let users = await Tracker.withComputation(computation, () => Meteor.users.find({}).fetchAsync());
});

从低于 2.9 的版本迁移?

如果您从低于 Meteor 2.9 的版本迁移,则可能存在本指南中未列出的重要注意事项。请查看旧的迁移指南以获取详细信息

在 GitHub 上编辑
// 搜索框