3

拥有不依赖于任何模板系统的主干视图是一种不好的做法吗?

当然,这并不意味着任何类型的 DOM 代码都将使用视图中的硬编码字符串手动生成。不不不。我当然可以在 DOM 元素中缓存每个视图的基本布局,设置为 display:none。但是,我想减少模板本身中的任何类型的值设置。我宁愿在视图本身中使用 jquery 或任何其他类型的 DOM 修饰符形式来做到这一点。通过这种方式,我使用 Mustache、Handelbars、Underscore 模板系统等,为自己避免了不断的差异和无数小时的工作,这些工作让我和我自己暴露了我的应用程序。将所有视图逻辑放在一个地方可以让一切变得更干净,至少在我看来。它提供了很多好处,例如正确的部分渲染、值绑定等,我'

我看到的唯一问题可能是我对 jQuery 进行的持续检查是否会执行得足够快,但我想它最终不应该是这样的问题。

你怎么看?好的?坏的?实际的?

4

2 回答 2

1

恕我直言,不使用模板引擎本身并不是一个糟糕的设计决定。

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

我认为最好使用模板引擎,但这只是个人喜好问题。我还将模板与手动 DOM 修改结合起来this.$el.find(".my-element").html( "new value" );进行部分更新。

于 2012-08-04T12:30:07.693 回答
0

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

也就是说,如果渲染调用过多或者您破坏并重新创建 DOM 元素/模板,则会在性能上花费很多。

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

于 2013-10-22T04:43:28.897 回答