流星铁路由器布局渲染

迈克尔·比尔萨克(Michael Birsak)

我们实现了一个布局,主要内容位于动态侧边栏中。我们定义如下layoutTemplate

<template name="layout">
  {{> content}}

  {{> leftbar}}

  {{> rightbar}}

  <nav class="navigation">
      {{#if currentUser}}
          {{> navigation_logged_in}}
      {{else}}
          {{> navigation_logged_out}}
      {{/if}}
  </nav>
</template>

我们在布局模板中包括例如rightbar模板。

<template name="rightbar">
  <aside class="rightbar">
      <button id="closeRightBar" class="close-cross"></button>

      {{yield 'rightbar'}}
  </aside>
</template>

右栏模板包括右栏产量,我们在其中产生特定的内容。

我们已经实现了以下RouteController:

UserShowRouter = RouteController.extend({

  before: function() {
      var username = this.params.username;
      if(App.subs.user) {
          App.subs.user.stop();
      }
      App.subs.user = Meteor.subscribe('user', username);
  },

  waitOn: function () {
    return Meteor.subscribe('user');
  },

  data: function() {
      return Meteor.users.findOne({'profile.username': this.params.username});
  },

  action: function() {
      this.render('profile', {to: 'rightbar'});
  }

});

我们想要实现的是,例如,将profile模板屈服到rightbaryield中,并在数据更改时更新并重新呈现get。

现在的问题是,侧边栏是动态动画显示和隐藏的。现在,每次profile重新渲染模板时,模板也会layout重新渲染这是为什么?我们认为产量区域的目的之一是不需要重新渲染整个场地。现在,当重新渲染布局时,动画的整个css将重新设置为原始值。

现在,我们尝试了几种不同的方法,但是似乎没有一个是好的,干净的解决方案。有没有一种方法可以防止layout模板被重新渲染,而只保持产量区域和模板更新?任何建议或替代将不胜感激。

杰里米·S。

据我了解,模板的重新渲染“冒泡”并导致其父模板的重新渲染的行为并不只适用于Iron-router或代码的实现方式,而是Spark固有的。据我从文档中可以看出,铁路由器的{{yield}}模式不会改变这种行为。

好消息是,Spark即将被更新,更细粒度的渲染引擎(当前代号为“ Spacebars”)取代,这将缓解这种担忧。

这是新渲染系统的预览:

https://github.com/meteor/meteor/wiki/New-Template-Engine-Preview

一周前的演讲还非常擅长描述通过新渲染引擎获得的好处(虽然相当长,但在最初的5分钟内给出了概述):

https://www.youtube.com/watch?v=aPf0LMQHIqk

至于今天的选择,您可以:

a)使用{{#constant}}和{{#isolate}}参数来尝试限制重新渲染。

b)如上面的链接所述,在开发部门工作:

您可以使用template-engine-preview-4 release标签(使用流星--release template-engine-preview-4运行您的应用程序)来使用当前的代码进行中版本,也可以通过检出shark分支(这是内部代号)。

c)如果项目时间允许,最重要的是允许重新渲染继续进行,直到Meteor 1.0命中并且“ Spacebars”驻留在主分支上为止-听起来距离1-3个月了。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

流星铁路由器布局渲染

来自分类Dev

流星铁路由器布局模板

来自分类Dev

流星铁路由器等待模板被渲染

来自分类Dev

流星铁路由器数据不渲染

来自分类Dev

流星铁路由器等待模板被渲染

来自分类Dev

流星和铁路由器的分页无法重新渲染

来自分类Dev

流星铁路由器:取消路线

来自分类Dev

铁路由器流星自动退订?

来自分类Dev

车把+流星+铁路由器

来自分类Dev

流星铁路由器路径

来自分类Dev

流星0.8和铁路由器

来自分类Dev

流星铁路由器套路

来自分类Dev

铁路由器的流星休息API

来自分类Dev

流星铁路由器:取消路线

来自分类Dev

铁路由器的流星休息API

来自分类Dev

流星铁路由器文档

来自分类Dev

铁路由器:流星JS

来自分类Dev

流星路由器vs铁路由器

来自分类Dev

流路由器布局的流星渲染两次

来自分类Dev

请解释流星的钢铁路由器数据并订阅/发布渲染

来自分类Dev

流星和铁路由器中的渲染模板取决于文档中的值

来自分类Dev

没有布局模板或JSON视图的流星铁路由器

来自分类Dev

流星1.0:所有页面(只有一页)上的铁路由器布局

来自分类Dev

流星0.8.0,铁路由器和发现流星

来自分类Dev

流星铁路由器:自定义ID路由

来自分类Dev

流星铁路由器参数定义的控制器?

来自分类Dev

流星铁路由器:何时调用“数据”?

来自分类Dev

流星:如何获取模板中的铁路由器参数

来自分类Dev

铁路由器的流星数据上下文