Javascript Backbone.js重新渲染视图还是重新创建?

Javascript Backbone.js重新渲染视图还是重新创建?,javascript,jquery,backbone.js,Javascript,Jquery,Backbone.js,目前,我正在处理backbone.js应用程序中的僵尸。我已经阅读了这篇关于僵尸的文章,并用以下内容扩展了我的项目: Backbone.View.prototype.close = function(){ this.remove(); this.unbind(); if (this.onClose){ this.onClose(); } } 我的问题是,如何恢复这个关闭过程?我可以在对象上调用render,还是必须通过使用新实例覆盖对象来重新启动对象?该调用将从DOM中

目前,我正在处理backbone.js应用程序中的僵尸。我已经阅读了这篇关于僵尸的文章,并用以下内容扩展了我的项目:

Backbone.View.prototype.close = function(){
  this.remove();
  this.unbind();
  if (this.onClose){
    this.onClose();
  }
}
我的问题是,如何恢复这个关闭过程?我可以在对象上调用render,还是必须通过使用新实例覆盖对象来重新启动对象?

该调用将从DOM中删除视图的
el

// Remove this view by taking the element out of the DOM, and removing any
// applicable Backbone.Events listeners.
remove: function() {
  this.$el.remove();
  this.stopListening();
  return this;
},
因此,您必须重新创建它并重新绑定所有DOM事件。在调用
this.unbind()
this.stopListening()
期间,您还将丢失所有主干事件绑定。然后,无论您的
onClose
做什么(如果您有),您都需要“undo
onClose
”方法


基本上,不要试图重用视图,只需销毁它们(通过适当的清理)并创建新的视图即可。您的视图应该足够轻量级,删除和重建它们应该无关紧要。

我如何正确地销毁视图?删除并设置为null?Derick的
close
是一种合理的方法,然后只需确保没有任何对隐藏在任何地方的实例化视图的引用。