MVC 代表模型、视图和控制器。Backbonejs.or 通过与 Rails 的比较来解释这一点,更多内容请参见此处和下方。因为不了解Rails,所以比较毫无意义。下面的摘录突出显示了控制器,这可能不是严格意义上的 MVC 的原因——不确定它推断出什么。Backbone 不是严格的 MVC 是什么意思?
摘自 Backbonejs.org -site(来源在这里)。
Backbone 与“传统”MVC 有何关系?
模型-视图-控制器模式的不同实现往往对控制器的定义存在分歧。如果有帮助的话,在 Backbone 中,View 类也可以被认为是一种控制器, 调度源自 UI 的事件,而 HTML 模板作为真正的视图。我们称它为 View 是因为它代表 UI 的逻辑块,负责单个 DOM 元素的内容。
将 Backbone 的整体结构与 Rails 等服务器端 MVC 框架进行比较,各部分排列如下:
- Backbone.Model – 就像 Rails 模型减去类方法。在业务逻辑中包装一行数据。
- Backbone.Collection – 一组客户端模型,具有排序/过滤/聚合逻辑。
- Backbone.Router – Rails routes.rb + Rails 控制器操作。将 URL 映射到函数。
- Backbone.View – 一个合乎逻辑的、可重用的 UI。通常但不总是与模型相关联。
- 客户端模板——Rails .html.erb 视图,渲染一大块 HTML。
我添加了斜体以强调为什么它显然不是 MVC。在上面我可以找到模型和视图 - 术语 - 但该术语controller
被明确省略,而不是使用术语路由器、集合和模板。为什么路由器/集合/模板不是控制器?
我发现这个控制器定义controller mediates input, converting it to commands for the model or view
(此处为维基百科)有点模糊。