主干.js视图和模型关联

Backbone.js views and models correlation?

本文关键字:模型 关联 视图 js 主干      更新时间:2023-09-26

背景:我是第一次使用Backbone。在我的项目中,我有一个"主要"模型 - 我们称之为Customer.始终只显示一个Customer。我有一个CustomerList集合,它将Customer排队。单击按钮时,将显示下一个CustomerCustomerView完成所有渲染等。

问题是:每次切换到下一个Customer时,我应该创建一个新的CustomerView实例吗?另一种可能性(我从这个角度开始)只是视图的一个实例,并将模型传递给视图的渲染函数(view.render(model))。这样,我可以从List获取下一个Customer,将其传递给视图的渲染函数,仅此而已。我想知道这是否适合 Backbone 的 MVC 模式?获取新模型、终止当前视图并创建一个新的视图实例似乎更"标准"。

请问有经验的骨干网开发人员有什么建议吗?谢谢。

如果唯一改变的是实际模型,那么您绝对应该保留您的CustomerView,并简单地为其提供一个新模型来显示。

这肯定与MVC的功能分离概念有关。CustomerView只需要相关数据(由模型提供)即可执行渲染视图的任务。

可以这样想 - 是否需要重置CustomerView模块?它根本不应该保存和建模特定信息,因此本质上它不应该关心您更改模型 - 只是在数据更改后需要重新渲染它。


对我来说,完全"杀死"当前视图的一个实例是,如果用户导航到与客户无关且无法查看客户详细信息的应用程序的不同部分。只有这样,完全释放不需要的模块才有意义。