【问题标题】:Is MVC applicable to JavaScript web applications?MVC 是否适用于 JavaScript Web 应用程序?
【发布时间】:2012-05-14 10:30:06
【问题描述】:

我试图了解MVC(例如,它在 Java 桌面应用程序中工作)是否适用于 JavaScript Web 应用程序。

MVC 我的意思是:

  • Model 是表示应用程序状态的数据。它不知道页面 DOM。
  • View 是 DOM 树和函数,监听 Model 变化并更新 DOM
  • Controller 监听用户手势(例如“按下按钮”),调用服务器,并更新 Model 而不是 View

我浏览了几个 JavaScript 应用程序,发现了一些不同的东西。 ModelView 之间没有明确的区别。也就是说,应用程序状态分散在 DOM 树上,Controller(例如 ajax 回调)直接更新 View(DOM 树)。

现在我想知道上面描述的MVC 是否真的适用于在浏览器中运行的JavaScript 应用程序。你怎么看?

【问题讨论】:

  • 它是“JavaScript”,只有一个词:)
  • MVC 是一种模式,可以应用于任何可以分离关注点的地方,包括客户端。对“javascript mvc”的简单搜索可能会更完整地回答这个问题。
  • @DaveNewton 谢谢。您对 JavaScript 中的 MVC 有任何经验吗?对于什么样的应用,你会推荐它?
  • 任何类型的,尽管对于小型应用程序或客户端要求非常轻的页面,除非团队已经在使用框架,否则可能不值得。客户端需要做的事情越多,将应用程序塑造成一个框架带来的价值就越大。像其他任何事情一样,“这取决于”。

标签: javascript model-view-controller web


【解决方案1】:

带有 JavaScript 的 MVC 已经存在并且已经成为可能。那里有大量的图书馆。我给你一些资源来挖掘:

Addy Osmani 博客包含大量关于 JavaScript 设计模式的信息,特别是关于 MVC,你应该看看 http://addyosmani.com/blog/。他还写了一本关于 Javascript 设计模式的书http://addyosmani.com/resources/essentialjsdesignpatterns/book/

【讨论】:

    【解决方案2】:

    您可以将 MVC 用于 JavaScript 应用程序和there is no shortage of frameworks to help

    虽然有很多应用程序不这样做(部分原因是 JavaScript 直到最近才被广泛认为是一种“严肃”的语言,所以这种开发实践对于大部分 JS 社区来说都是新的)。

    【讨论】:

      【解决方案3】:

      在 JavaScript 中,由于其动态特性,这些模式会有所不同,具体取决于构建它们的程序员和基于它构建的应用程序。而 MVC 只是a whole bunch of patterns 中的一种。

      【讨论】:

        猜你喜欢
        • 2018-12-15
        • 2015-06-01
        • 2022-12-19
        • 1970-01-01
        • 2018-11-01
        • 2023-03-03
        • 1970-01-01
        • 1970-01-01
        • 2018-03-11
        相关资源
        最近更新 更多