【发布时间】:2014-11-05 04:10:59
【问题描述】:
我注意到与 Backbone 相比,Marionette 更新 DOM 的方式有所不同。我创建了两个简单的小提琴。一种使用 Backbone,另一种基于 Marionette。这两个示例都有一个辅助方法调用 processDom,并且该方法在迭代 50 次后简单地抛出一个错误。
但是在主干示例元素被附加到 DOM 直到 die() 方法触发。但在基于木偶的示例中,DOM 根本没有更新。如果有人能解释这是如何工作的,那就太好了。我想知道木偶在内部使用了一种虚拟 dom 技术。
木偶示例中的渲染方法
render: function () {
var viewHtml = this.template({
'contentPlacement': 'Sydney'
});
this.$el.html(viewHtml);
this.processDom(this.$el);
this.postRender();
}
主干示例中的渲染方法
render: function () {
var template = Handlebars.compile($('#sample-template').html());
var viewHtml = template({
'contentPlacement': 'Sydney'
});
this.$el.html(viewHtml);
this.processDom(this.$el);
this.postRender();
},
小提琴示例的链接
【问题讨论】:
标签: javascript jquery dom backbone.js marionette