如何将MVC架构应用于ExtJS项目?

问题描述 投票:0回答:2

我想使用著名的JavaScript库ExtJS构建一个Web项目。目标是仅使用ExtJS(以及一些CSS和HTML)来构建整个客户端Web应用程序。我也想将Model-View-Controller结构应用于该项目的代码。

第一个问题:是否可以将这样的体系结构应用于ExtJS项目?

第二个问题:如何轻松地将MVC架构应用于ExtJS项目?

我已经读过this,但是它不能回答我的问题。

ExtJS社区的文档没有提供此类提示。在所有给定的示例中,代码都包含在一个文件中,并且UI代码没有与应用程序逻辑代码分开。例如,侦听器方法和对服务器的调用都带有UI代码。

事实上,欢迎将应用程序逻辑与用户界面代码分开的所有技巧。

编辑

[另一个问题:您认为设计基于ExtJS的Web应用程序的最佳方法是什么?我没有找到ExtJS的任何优秀设计师。我发现的设计师(thisthis)似乎并不可靠(第一个代码的生成有时会失败)。

javascript extjs
2个回答
6
投票

根据我的经验,您要考虑两个单独的应用程序。

在服务器端,您希望构建一个仅提供Web服务的非常典型的MVC应用程序。您只讲JSON就可以了。研究REST做事。

在客户端,您有一个javascript应用程序。如果您确实在使用ExtJS,则应该只有一个初始请求/响应来设置应用程序。从那时起,所有内容都应该是对您的Web服务的XHR请求(并且,如果您喜欢的话,可以延迟加载ExtJS驱动的javascript文件)。

当您突然想打开一个公共Web服务或编写一些替代客户端(例如iPhone应用程序)时,这种架构便会有所回报。这些替代客户端应该能够依赖已经运行的Web服务。

将设备切换到由ExtJS驱动的客户端,MVC可以在这里为您提供帮助,但是您正在进行从请求驱动的系统(服务器上的)到更开放的事件的心理上下文切换,浏览器中的驱动系统。

[使用ExtJS社区讨论的许多实践(智能使用工厂方法,扩展内置类,模块模式,ExtJS的模板方法等)。

[在组织JavaScript应用程序时,请尝试以MVC的方式思考。了解事件冒泡和relayEvents()的工作方式。您已经有了模型的东西(基本上,它们将从内置的商店类派生),视图的东西(网格,树等)和控制器的东西(通常连接到某个容器上)。阅读Saki关于组件间的东西。 extjs.eu进行通信。)

涉及重量级客户端应用程序设计时,肯定有不止一种方法。但是,如果您想充分利用ExtJS的潜力,那么花时间阅读一些东西是值得的。大致看一下有关GUI编程的文章或书籍-编写ExtJS应用程序比编写Web应用程序更类似于编写传统的桌面应用程序。

在此域中,“网络”内容变得非常简单-您只是在服务器端处理数据。棘手的事情是弄清楚如何组织和优化浏览器中的代码。


-1
投票

使用一些使javascript OOP成为lang的库。然后使用MVC模式。您也可以使用Ext-GWT在OOP java上开发Web。

© www.soinside.com 2019 - 2024. All rights reserved.