javascript - 对具有多个模型的 JS 应用程序使用 MVC 模式
问题描述
在使用多个模型的情况下,我正在尝试理解 MVC 模式在 JS 应用程序中的用法。例如,我有一个包含用户信息、他的命令和命令执行者的页面。我需要显示一些用户信息并进行命令和执行者编辑。所以我有 3 个模型,每个模型都需要控制器和视图。除了命令和执行者在列表中。模型中连续使用的所有列表必须从服务器加载。我应该使用什么方法在一个页面中管理多个 MVC 实体?也许是另一种设计模式等。
更新
澄清
但是,如果我需要制作一个单独的页面,我只处理订单或只处理执行者。这些应该是单独的实体是合乎逻辑的,以便它们可以用于各种任务。我认为,在这种情况下,也许有必要从“小”模型中组装一个“大”模型来解决特定问题,或者为模型之间的交互制作某种接口。我在说什么?例如,当我从服务器加载订单时,我还加载了一些关于执行程序的信息,即在 SQL 数据库中,这是通过两个表的一些 JOIN 完成的。哪个模型请求加载?显然是命令。那么,如何初始化执行者模型数据呢?好的,我正在做一个大模型,其中包含我需要的关于我的应用程序中所有实体的所有数据。好的,页面(模态,无论如何)用于执行人的编辑。不需要订单数据或客户(用户)数据。为此,我使用相同的模型,其中一些与它们相关的数据和函数将不会被使用。有些东西不适合我:)
解决方案
只是一个更正,MVC 是一种架构模式,而不是一种设计模式。然而,两者相差一条细线,因此在讨论过程中很容易错误地互换两者。
无论如何,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 作为输入,应该处理所有的错误处理。
推荐阅读
- node.js - CERT_HAS_EXPIRED - 在从节点 js 到 php 的 post 请求中
- html - 表格主体元素与标题元素重叠
- javascript - 在构建基于 JavaScript 的 Web 浏览器时减少 CPU 使用率的方法
- reactjs - Symfony,React:生产服务器上的 api/var/log/prod.log 为空
- python - 如何根据另一个值列表拆分列表?
- notepad++ - 替换仅包含特定字符的文本 Notepad++
- docker - 我 Docker 是否 CMD 指令添加了一层?
- python - 使用 SharedMemoryManager 在进程之间进行通信时出现 EOFError
- python - 使用 astropy fit_wcs_from_points 给 FITS 文件一个新的 WCS
- php - 在 Laravel 中,如何使用从原生 php 应用程序保存到数据库的会话?