gpt4 book ai didi

javascript - Backbone.js 再次渲染 View 还是重新创建?

转载 作者:行者123 更新时间:2023-11-30 05:47:07 25 4
gpt4 key购买 nike

目前我正在处理我的 backbone.js 应用程序中的僵尸。我读过这篇精彩的文章 http://lostechies.com/derickbailey/2011/09/15/zombies-run-managing-page-transitions-in-backbone-apps/关于僵尸并以此扩展我的项目:

Backbone.View.prototype.close = function(){
this.remove();
this.unbind();
if (this.onClose){
this.onClose();
}
}

我的问题是,如何恢复这个关闭过程?我可以只在对象上调用 render 还是必须通过用新实例覆盖它来重新启动对象?

最佳答案

this.remove()调用从 DOM 中删除 View 的 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;
},

因此您必须重新创建它并重新绑定(bind)所有 DOM 事件。在 this.unbind()this.stopListening() 调用期间,您还将丢失所有 Backbone 事件绑定(bind)。然后是您的 onClose 所做的一切(如果您有的话),因此您需要“撤消 onClose”方法。

基本上,不要尝试重新使用 View ,只需销毁它们(通过适当的清理)并创建新 View 。您的 View 应该足够轻量级,以至于终止和重建它们应该无关紧要。

关于javascript - Backbone.js 再次渲染 View 还是重新创建?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17409986/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com