背景:我是第一次使用 Backbone。在我的项目中,我有一个“主”模型——我们称它为Customer
。在任何时候,只显示一个 Customer
。我有一个 CustomerList
集合,它对 Customer
进行排队。单击按钮,将显示下一个 Customer
。 CustomerView
完成所有渲染等工作。
问题:每次我们切换到下一个Customer
时,我是否应该创建一个新的CustomerView
实例?另一种可能性(我开始时采用的)只是 View 的一个实例并将模型传递给 View 的渲染函数 (view.render(model)
)。这样,我就可以从 List
中获取下一个 Customer
,将其传递给 View 的渲染函数,仅此而已。我想知道这是否适合 Backbone 的 MVC 模式?获取新模型、终止当前 View 并创建新 View 实例似乎更“标准”。
有经验的 Backbone 开发人员有什么建议吗?谢谢。
最佳答案
如果唯一改变的是实际模型,那么您绝对应该保留 CustomerView
并简单地为其提供一个新模型来显示。
这肯定与功能分离的 MVC 概念有关。 CustomerView
只需要相关数据(由模型提供)来执行其呈现 View 的任务。
这样想 - 是否有任何需要重置您的 CustomerView
模块?它根本不应该保存和建模特定信息,所以从本质上讲,它不应该关心您是否更改模型 - 只需要在数据更改后重新呈现它。
如果用户导航到与客户无关且无法查看客户详细信息的应用程序的不同部分,我认为完全“杀死”当前 View 是有意义的。只有这样,完全释放不需要的模块才有意义。
关于javascript - Backbone.js View 和模型相关性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27358109/