javascript - 事件处理程序是在 MVC 应用程序的 View 中还是 Controller 中?

标签 javascript model-view-controller

我目前正在参加 JavaScript 设计模式类(class),我想澄清事件处理程序的正确位置。

我注意到我教授的代码在 View 部分包含了客户端应用程序的点击处理程序——我的代码实现了相同的结果,但我在 Controller 中包含了点击处理程序。

在 MVC 应用程序中,事件处理程序应该位于 View 中还是 Controller 中?

最佳答案

在 MVC 应用程序中,事件处理绝对应该放在 View 中。 对于不太熟悉软件设计模式的程序员来说,这是一种常见的误解,认为事件处理属于 Controller ,可能是因为它的名称(controller = sth. that control sth. ...)。 原因是可移植性、代码重用和模块化:想象一下您想要在不同的平台上运行您的应用程序:PC、Web、移动电话设备。每个特定平台都有自己的 GUI 框架、库等,因此如果您在 View 中放置 100% GUI 平台特定的事件处理内容(例如 javafx、swing、android、struts、gwt ...),您可以重用 Controller 和模型,并且只需要处理新的自定义 View 。 Controller 可以看作 View 和模型之间的中介,是负责模型和 View 之间正确交互的中间件。

关于javascript - 事件处理程序是在 MVC 应用程序的 View 中还是 Controller 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35006973/

相关文章:

javascript - Ajax 绑定(bind)选择(组合框)错误(或列表为空,具体取决于浏览器)

ios - 与iOS开发相比,Web开发中的模型(MVC)有什么区别

c# - AutoFac - 每个依赖项的单个实例

ruby-on-rails - 详细说明 MVC 如何在 Rails 中工作,以及 Controller 如何与表单等通信?

json 解析后的 Javascript 回调

javascript - 在 Javascript 中为对象属性赋予随机属性值

javascript - 使用 jQuery 函数将格式为 "YYYY-MM-DDT12:00:00.000Z"的 ISO 8601 日期转换为 "DD.MM.YYYY"?

javascript - Yoast、bbPress导致JQuery冲突

c# - 如何在 C# 代码中使用 MVC 3 @Html.ActionLink

php - 实现我的第一个 PHP 模型