javascript - 如何构建 Javascript 架构以补充 PHP MVC 网络应用程序?

标签 javascript model-view-controller architecture

我正在为 Web 应用迭代开发一种新的 JavaScript 架构。之前的迭代有很多内联代码,分散的包含,没有 .js 文件的目录结构,一切都在全局命名空间中。我的目标是:将脚本包含在页脚中,将所有内容保留在应用程序 namespace /对象中,将组织添加到 .js 文件并将所有应用程序特定文件缩小到一个 bundle.js 中

我正在尝试采用基于 Nicholas Zakas 的模块化方法:“可扩展的 JavaScript 应用程序架构”http://www.yuiblog.com/blog/2009/09/17/video-bayjax-sept-09/

网站目前的结构是这样的

/app
 /models
 /views
   /home
   /auth
   /meta
     about.tpl
     contact.tpl
     privacy.tpl
 /controllers
   home.php
   auth.php
   meta.php
 /public
  /js
   core.js
   /modules
     module files here
   /jquery
     jqueryplugins here
   /controllers
     home.js
     auth.js
     meta.js

Controller 具有对应于我们的 url 路由和 View 渲染的方法。例如 http://localhost/meta/contact 会在“meta” Controller 上调用“contact”操作并呈现 meta/contact 模板。

我正在围绕对应用程序全局对象的单个初始化调用来规划 js 架构,将 Controller 和方法作为参数传递给它,即

localwebapp.init(controller, method);

在设计的这一点上,我正在为继承和模块实现而苦苦挣扎。一些模块将是全局的并在整个站点中使用,一些模块将通过特定的 Controller 使用,而一些模块将仅在 Controller 操作上使用。 模块是独立的,不会相互通信,它们将需要分配给一个“沙箱”,它们将检查事件触发器

我想我需要沙箱和模块类。 Controller 脚本基本上是分配给沙箱并初始化的几行模块。

如果我在这里重新发明轮子,请告诉我。非常感谢任何方向。我查看了 javascript MVC 框架,它的工作原理与 JavaScriptMVC 类似,但它看起来不是我需要的

最佳答案

我们也使用 JavaScript MVC。您可以在应用程序中同时使用两者。

在我们的案例中,我们的应用程序更多地由前端驱动,而后端(带 MVC 的 ZF)是一个 REST API,而 JavaScript MVC 可以轻松实现这一点。功能集仍然在 PHP 部分,而不是客户端,我们只是利用了 JavaScript MVC 的很多部分,使它看起来更活泼,等等。

最后,我看不出有什么理由不能反过来。

我认为 MVC 中对 View 部分的误解是它是在浏览器中看到的东西。 View 也可以是 XML 或 JSON。我相信您知道这一点,但我想强调这一部分,因为它会让大多数人望而却步。

如果您通常询问有关 JavaScript MVC 的问题——我不知道它是否是最好的 MVC 框架(客户端方面),但它会强制您定义模型、 Controller ,并且它附带一个测试框架以确保事情按计划进行。

如果这有帮助,请告诉我!

关于javascript - 如何构建 Javascript 架构以补充 PHP MVC 网络应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1587037/

相关文章:

javascript - 以下 backbone.js 示例中的模型、 Controller 、 View 是什么?

php - 获取已定义的 zend 路由列表

javascript - 重用 AngularJS Controller 逻辑

c - 在 c 中的 2 个不同软件模块之间共享变量

c# - 设计架构,分离项目。我是 "over thinking"吗?

javascript - 单击时如何使按钮闪烁不同的背景颜色/

javascript - 配置 Axios 和 Flask 以使用 CORS 和 cookie

javascript - WinJS 从 LocalState 文件夹中删除文件夹

Java 体系结构编码约定

javascript - React Functional Component + TypeScript 函数重载怎么写?