【问题标题】:Using MVC pattern for JS app with multiple models对具有多个模型的 JS 应用程序使用 MVC 模式
【发布时间】:2021-03-26 18:20:52
【问题描述】:

在使用多个模型的情况下,我正在尝试理解 MVC 模式在 JS 应用程序中的用法。例如,我有一个包含用户信息、他的命令和命令执行者的页面。我需要显示一些用户信息并进行命令和执行者编辑。所以我有 3 个模型,每个模型都需要控制器和视图。除了命令和执行者在列表中。模型中连续使用的所有列表必须从服务器加载。我应该使用什么方法在一个页面中管理多个 MVC 实体?也许是其他设计模式等。

更新
澄清
但是,如果我需要制作一个单独的页面,我只处理订单或只处理执行者。这些应该是单独的实体是合乎逻辑的,以便它们可以用于各种任务。我认为,在这种情况下,也许有必要从“小”模型中组装一个“大”模型来解决特定问题,或者为模型之间的交互制作某种接口。 我在说什么?例如,当我从服务器加载订单时,我还加载了有关执行程序的一些信息,即在 SQL 数据库中,这是通过两个表的一些 JOIN 完成的。哪个模型请求加载?显然是命令。那么,如何初始化执行者模型数据呢?好的,我正在做一个大模型,其中包含我需要的关于我的应用程序中所有实体的所有数据。 好的,执行者编辑的页面(模态,无论如何)。不需要订单数据或客户(用户)数据。为此,我使用相同的模型,其中一些与它们相关的数据和函数将不会被使用。有些东西不适合我:)

【问题讨论】:

    标签: javascript model-view-controller design-patterns


    【解决方案1】:

    只是一个更正,MVC 是architectural pattern 而不是设计模式。然而,两者之间的差别只有一条细线,因此在讨论过程中很容易错误地互换。

    不管怎样,MVC 应该是构建代码的好方法:

    - authentication [Feature1]
        - pages
           - signin_page.htm
           - authentication.css
           - signup_page.htm
        - models
           - user_info.js
           - signin_info.js
        - auth_controller.js
     - orders [Feature2]
        - pages
        - models
           - order_info.js
           - payment_info.js
        - order_controller.js
     - Feature3
     - Feature4
     - shared [all common things]
        - services
           - http_service.js
        - models
           - error_info.js
    

    基本上,您可以为每个特性或功能创建一个文件夹,然后根据需要在其中创建文件夹,即页面/视图和模型,然后为每个特性创建一个或多个控制器和一个通用服务来执行 http 调用,这应该将参数和 url 作为输入,应该处理所有的错误处理。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-24
      • 2022-11-10
      • 2011-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-12
      • 1970-01-01
      相关资源
      最近更新 更多