我注意到,每当 meteor /铁路由器更改路线时,整个页面都会刷新。

为什么会发生这种情况,我该如何预防呢?

我为每条新路线设置路线的方式都是这样的...

Router.route('/route/:_some_param', {
    name: 'something',
    onBeforeAction: function(){ // Something },
    waitOn: function(){ // Some subscription },
    action: function(){ // Something },
})

我以这种方式设置了几条路线。每当我从一页移动到另一页时,Meteor都会重新加载整个页面。但是,当我停留在一条路线上并仅更改参数时,Meteor只会重新加载必要的内容,这是我一直想要的。

最佳答案

我相信您正在观察的内容是Iron Router工作原理的基础。您创建一个带有{{> yield }}模板占位符的主模板,然后Iron Router将其替换为该给定路由指定的模板。如果您选择其他路线,则{{> yield }}现在将指向新模板,因此将重新呈现页面的该部分。您可以通过最小化主模板中{{> yeild }}的范围来最小化换出的页面量。

例如,在我的模板中,我有一个页眉和页脚,如下所示:

<html>
  {{> header }}
  {{> yield }}
  {{> footer }}
</html>

当我浏览路线时,页眉和页脚根本不会更新,只是它们之间的“胆量”。

关于meteor - 更改路线时防止 meteor /铁路由器重新加载,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27689316/

10-15 14:32