我正在使用Flow-Router处理Meteor应用程序。
我通过创建发布所有用户的发布功能来检索整个用户列表(多个用户)。在我的路线中,我订阅了这个(基于路线的订阅),然后我创建了一个模板帮助方法,我按照特定的顺序返回这些用户。
我还显示当前用户的个人资料。我尝试通过路由订阅(基本上如上所述)这样做,但我无法让它工作。然后我将其转换为基于模板的订阅并使其工作。所以我在Template onCreated函数中放置了一个自动运行,创建了一个帮助程序来检索该用户,并在模板中创建了一个Template.subscriptionsReady。
长话短说:有人可以解释一下基于路线的订阅和基于模板的订阅之间的区别。我一直在阅读this多次,我可以让两者都运作良好但说实话我仍然不明白何时使用究竟是什么。
答案 0 :(得分:2)
来自流程路由器https://kadira.io/academy/meteor-routing-guide/content/subscriptions-and-data-management背后的团队Kadira。解释为什么你应该使用模板订阅和NOT路由器订阅。
参见extract:
订阅和数据管理
Meteor应用程序的一个重要部分是数据和订阅管理。过去,我们在路由器本身中调用订阅并管理其中的数据。但是,现在我们认为这是一种反模式。
<强>为什么吗
在客户端,我们无法控制何时可以为应用提供数据。您需要等待订阅才能发送数据。 路由器需要等待数据,它需要被动。这会导致许多不可预测的行为,特别是当您的应用变大时。 在加载数据时,我们可能需要显示加载消息。因此,我们需要找到与路由器和渲染层交互的方法。显示全局加载器不是一个好的模式。 现在,无论您何时重用模板,都需要再次在路由器中定义数据要求。