更改路由时防止Meteor/Iron路由器重新加载

Mco*_*ope 6 meteor iron-router

我注意到每次Meteor/Iron路由器更改路由时,整个页面都会刷新.

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

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

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

我有这样的几条路线设置.每当我从一个页面移动到另一个页面时,Meteor会重新加载整个页面.然而,当我留在一条路线上并且只是改变参数时,Meteor只会重新加载必要的东西,这就是我一直想要的东西.

Cod*_*imp 1

我相信您所观察到的是 Iron Router 工作原理的基础。您使用模板占位符创建一个主模板{{> yield }},Iron Router 将其替换为给定路由指定的模板。如果您选择不同的路线,{{> yield }}现在将指向新模板,因此页面的该部分将重新呈现。{{> yeild }}您可以通过最小化主模板的范围来最大程度地减少被换出的页面量。

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

<html>
  {{> header }}
  {{> yield }}
  {{> footer }}
</html>
Run Code Online (Sandbox Code Playgroud)

当我导航路线时,页眉和页脚根本没有更新,只是它们之间的“内容”更新。