Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我什么时候应该在JavaScript中使用MVC框架?_Javascript_Model View Controller_Web Applications_Backbone.js_Libraries - Fatal编程技术网

我什么时候应该在JavaScript中使用MVC框架?

我什么时候应该在JavaScript中使用MVC框架?,javascript,model-view-controller,web-applications,backbone.js,libraries,Javascript,Model View Controller,Web Applications,Backbone.js,Libraries,我知道这个主题可能会变得主观,因此它与我正在开发的特定web应用程序无关 对于JavaScript,我没有使用过像这样的MVC库,但我看到了解耦逻辑和视图的优势。另一方面,可能不值得花时间学习框架并调整应用程序以利用它。此外,我想,用JavaScript处理所有视图会使SEO变得更加困难 那么,鉴于web应用程序的概念,我应该如何决定使用Backbone.js或类似的框架是否有意义呢?决定取决于什么 欢迎提供任何有助于使问题更加客观的帮助。如您所知,可以使用 具有 和其他类似的库,主要关注每个表

我知道这个主题可能会变得主观,因此它与我正在开发的特定web应用程序无关

对于JavaScript,我没有使用过像这样的MVC库,但我看到了解耦逻辑和视图的优势。另一方面,可能不值得花时间学习框架并调整应用程序以利用它。此外,我想,用JavaScript处理所有视图会使SEO变得更加困难

那么,鉴于web应用程序的概念,我应该如何决定使用Backbone.js或类似的框架是否有意义呢?决定取决于什么


欢迎提供任何有助于使问题更加客观的帮助。

如您所知,可以使用 具有 和其他类似的库,主要关注每个表单字段作为实体中的属性,这样实体可以用于不同的目的,MVC结构可以在javascript中维护以便于操作 这些结构适用于事件绑定、dom操作、序列化等

选择适合javascript的mvc或mvvm结构的结构取决于应用程序的用途。MVVM结构可以通过或包含在javascript中,或者可以使用其他库进行动态绑定以查看组件javascript
MVVM体系结构将可用于维护表单字段绑定,而无需重新加载或ajax。通过在js中维护该体系结构,有很多应用程序,我只指出了一些

例如:


在本例中,表单值作为模型检索,然后可以对其进行操作并添加业务逻辑,可以序列化或事件绑定,可以打印或执行任何操作。

有许多客户端javascript MVC(或MV*)框架。大多数人似乎对什么是MVC以及它应该如何与web应用程序协同工作有不同的想法

如果你的客户端JavaScript的复杂性变得难以管理,你应该考虑一个MV*框架。如果您有一个团队构建一个高度动态的单页应用程序(SPA),它与后端进行大量异步通信,那么您将需要考虑它。否则很容易得到非常混乱的javascript代码

MV*框架将通过以下一种或多种方式帮助您:

  • 通过定义代码的结构。这在不同程度上取决于框架的自以为是程度。例如,主干网将自己视为一个库而不是一个框架,因此将更多的决策权留给用户
  • 通过将html绑定到模型。因此,如果数据发生更改,页面将自动更新(反之亦然)
  • 通过提供有用的功能,如URL历史记录(针对单页应用)和验证

    • 我想这取决于你的项目。这里有一个清单,可以帮助您决定是否应该使用前端MV*框架

      • 对后端的大量ajax请求
      • 您的许多功能不需要重新加载整个页面。例如添加注释、分页或无限滚动
      • 您在后端有models/restapi。您可以在前端复制/使用相同的结构
      • 您正在跨不同页面共享逻辑/dom操作函数

      如果我找到更多的点,我将添加更多。这是我现在能想到的,这不是一个完整的列表。欢迎提出任何建议。

      underline.js似乎有其他语言的端口。请原谅我的无知,但下划线与MVC有什么关系?它似乎只是添加了一些实用功能,为JavaScript web应用程序提供和。你说得对,这不是一个框架,而是一个工具集。但我还没有完全做到这一点。这是一篇关于的文章。当我第一次知道MVC也可以在javascript中应用时,我感到非常惊讶。角度、下划线、主干就是一个例子……但何时使用它对我来说仍然是一个大问号……关于它的一个好的解释会帮助很多人。问题+1