Backbone.js 主干视图是持久的吗

Backbone.js 主干视图是持久的吗,backbone.js,backbone-views,Backbone.js,Backbone Views,如果您在开发工具中查看ToDo应用程序,则每次创建新ToDo(模型)时,都会在AppView中创建一个新的ToDoView。但是我没有看到一个“集合”的视图。我问这个问题是因为我认为当模型被破坏时视图会被破坏,但是找不到引用。 感谢视图通常位于内存结构中(如DOM本身),因此只要javascript代码持有对它们的引用(从而使它们不符合浏览器JS引擎进行垃圾收集的条件),它们就会继续存在。关上窗户,他们就走了。单击指向另一个页面的链接,该页面将加载整个页面,而这些页面将消失 但是,视图不会自动响

如果您在开发工具中查看ToDo应用程序,则每次创建新ToDo(模型)时,都会在AppView中创建一个新的ToDoView。但是我没有看到一个“集合”的视图。我问这个问题是因为我认为当模型被破坏时视图会被破坏,但是找不到引用。
感谢

视图通常位于内存结构中(如DOM本身),因此只要javascript代码持有对它们的引用(从而使它们不符合浏览器JS引擎进行垃圾收集的条件),它们就会继续存在。关上窗户,他们就走了。单击指向另一个页面的链接,该页面将加载整个页面,而这些页面将消失

但是,视图不会自动响应正在销毁的模型。如果希望通过主干删除模型时模型从DOM中消失,则必须手动连接类似于
this.listenTo(this.model,'destroy',this.remove.bind(this))
的内容


另外,正如您所注意到的,当您有一组要渲染的模型时,通常只为每个模型创建一个新视图,渲染它,然后不保留对它的引用。当集合发生更改时,最外层的元素将被清空,新的视图实例将被创建和呈现,因此旧的视图实例可以进行自动垃圾收集。因此,javascript将处理这些旧视图的清理,但这不会对相应的模型产生任何影响,也不会触发任何AJAX请求。

仍然感到困惑。如果模型数据发生更改,则必须更新视图。如果它真的不存在了,它是如何更新的?模型似乎是唯一可以在这里迭代的真实对象。视图仍然“真实存在”,如果您的事件连接正确,当模型的数据更改时,该模型的视图将响应这些事件并相应地更新其DOM元素。问题是,一旦视图有了对其模型的引用,通常就没有任何令人信服的理由保留视图列表,因为如果您只是操纵模型,事件绑定将执行视图操作,并且视图将自动更新。因此,如果您愿意,您可以保留对视图的引用,有时需要,但通常不必。也许其他人能更好地解释