建议:在JavaScript中难以使用模型视图控制器

Advice: Struggling with Model-View-Controller in JavaScript

本文关键字:模型 视图 控制器 JavaScript 建议      更新时间:2023-09-26

我正在努力更好地理解MVC。我找不到太多我真正理解的内容,也找不到可以重新设计以更好地理解内部工作的内容。

我知道模型是数据(带有对象或其他东西的JavaScript),视图是HTML,控制器是浏览器。

这是正确的理解吗?有人能给我举一个MVC的简单、肮脏的例子吗?

提前感谢您提供的任何有用的意见。

MVC框架包括以下组件:

  • 型号。模型对象是应用程序中实现应用程序数据域的逻辑。通常,模型对象检索模型状态并将其存储在数据库中。例如,一个产品对象可能从数据库中检索信息,对其进行操作,并且然后将更新后的信息写回SQL中的Products表服务器数据库。在小型应用程序中,模型通常是概念上的分离而不是物理的。例如,如果应用程序只读取数据集并将其发送到视图,则应用程序没有物理模型层和相关的类。在这种情况下数据集扮演模型对象的角色。

  • 视图。视图是显示应用程序的用户界面(UI)。通常,此UI是根据模型创建的数据例如,Products表的编辑视图显示基于的文本框、下拉列表和复选框Product对象的当前状态。

  • 控制器。控制器是处理用户的组件交互,使用模型,并最终选择一个视图显示UI的渲染。在MVC应用程序中,仅视图显示信息;控制器处理并响应用户输入和交互。例如,控制器处理查询字符串值,并将这些值传递给模型,模型在turn可能会使用这些值来查询数据库。

http://msdn.microsoft.com/en-us/library/dd381412(VS.98).aspx?ppud=4

我建议您在这里学习Backbone JS示例https://github.com/tastejs/todomvc/tree/gh-pages/architecture-examples/backbone

Backbone是您可以找到的最简单的Javascript MVC库(而不是框架)。它清楚地定义了什么是Model(同步到REST API的数据)、View(这有点令人困惑,因为Backbone中的View加上Router等于MVC世界中的"Controller")和Template(这是MVC世界中"View"。你可以使用Mustache JS或下划线JS或其他模板引擎)。

我希望这能有所帮助。