代码之家  ›  专栏  ›  技术社区  ›  Preslav Rachev

没有模板的主干

  •  3
  • Preslav Rachev  · 技术社区  · 12 年前

    拥有不依赖于任何类型的模板系统的主干视图是不是一种糟糕的做法?

    当然,这并不意味着任何类型的DOM代码都将使用视图中的硬编码字符串手工生成。不不。我当然可以在DOM元素中缓存每个视图的基本布局,设置为display:none。但是,我想减少模板本身中的任何类型的值设置。我宁愿使用jquery或视图本身中的任何其他类型的DOM修饰符形式来实现这一点。这样,我就省去了使用Mustache、Handelbars、Undercore模板系统等暴露在我的应用程序和我自己面前的不断的差异和无数小时的努力。将所有视图逻辑放在一个地方会让一切变得更干净,至少在我看来是这样。它提供了很多好处,例如适当的局部渲染、值绑定等,如果我想用胡子之类的东西来实现它们,我需要花费大量的时间。

    我看到的唯一可能出现的问题是,我用jQuery进行的常量检查是否会执行得足够快,但我想最终不应该是这样的问题。

    你怎么看?好的令人不快的实际的

    2 回复  |  直到 12 年前
        1
  •  1
  •   fguillen    12 年前

    IMHO未使用 模板引擎 这本身并不是一个糟糕的设计决策。

    模板引擎旨在生成更干净、更可维护的代码,如果你认为不使用它们会生成更干净和更可维护代码,那么你可以在没有它们的情况下运行它们。

    我的意见最好用 模板引擎 但这只是品味的问题。我还将 模板 通过手动修改DOM this.$el.find(".my-element").html( "new value" ); 用于部分更新。

        2
  •  0
  •   puppybits    11 年前

    模板很好。它们为您节省了大量的编码时间,并允许您在元素上循环并用很少的代码创建多个元素。

    也就是说,如果渲染调用过多,或者您销毁并重新创建DOM元素/模板,那么性能会损失很大。

    我有一个用于主干网的PerfView,它可以在chrome中以120FPS的滚动视图中显示1000000个模型。诀窍是,我只使用所有可能的节点渲染一次模板,然后在模型更改时更改DOM中的内容。另外,使用DOM元素的对象池可以重用它们。查看第237行的modelMap属性( https://github.com/puppybits/BackboneJS-PerfView/blob/master/index.html )关于如何半自动更新元素,这样就不会过度使用模板。