0

我正在使用 Flow-Router 开发 Meteor 应用程序。

我通过创建发布所有用户的发布功能来检索整个用户列表(多个用户)。在我的路由中,我订阅了这个(基于路由的订阅),然后我创建了一个模板帮助器方法,在该方法中我以特定顺序返回这些用户。

我还显示了当前用户的个人资料。我试图通过路由订阅来做到这一点(基本上如上所述),但我无法让它工作。然后我将它转换为基于模板的订阅并让它工作。所以我在模板 onCreated 函数中放置了一个自动运行,创建了一个帮助器来检索该用户,并且在模板中我正在执行 Template.subscriptionsReady。

长话短说:有人可以解释一下基于路由的订阅和基于模板的订阅有什么区别。我已经读很多遍了,我都可以很好地工作,但老实说,我仍然不明白什么时候该使用什么。

4

1 回答 1

2

来自流路由器背后的团队 Kadira,https: //kadira.io/academy/meteor-routing-guide/content/subscriptions-and-data-management 。解释为什么应该使用模板订阅而不是路由器订阅。

见摘录:

订阅和数据管理

Meteor 应用程序的重要组成部分之一是数据和订阅管理。过去,我们在路由器本身中调用订阅并管理其中的数据。但是,现在我们认为这是一种反模式。

为什么?

在客户端,我们无法控制应用程序何时可以使用数据。您需要等待订阅发送数据。路由器需要等待数据并且它需要是被动的。这会导致很多不可预知的行为,特别是当您的应用程序变大时。在加载数据时,我们可能需要显示加载消息。所以我们需要找到与路由器和渲染层交互的方法。显示全局加载器不是一个好的模式。现在,无论您在何处重用模板,都需要在路由器中再次为其定义数据需求。

于 2015-11-27T18:56:06.210 回答