`

EXTJS的mvc架构介绍

 
阅读更多

目前我们在构建我的应用程序时,采用的架构也有好多,其中我们最常用的也是最基础就是Model-View-Control(MVC),不管我们在构建什么类型的应用程序,我们都离不开MVC的设计。在EXTJS4中,也提供的MVC的设计思想,下面我们就来看一下,在EXTJS4中如何应用MVC的架构。



1、首先我们先简单介绍一下,4中MVC各层的基本概念。
Model:Model层,说白了,具体就是指EXT中的Ext.data.Model类,可以理解为数据集中的一条记录,Store依据于Model而得到数据。
Control:Control层,属于应用程序的业务逻辑层。用于加载应用程序中的Model、Store、View。以及处理View层中的事件。可以理解为,Control层是存放很多事件处理的一个集合。
View:View层,在ext中所有的组件都可以叫做View,比如panel、tree、grid。用于呈现Store的组件就是View层。
2、
EXT4中MVC的架构图

从上图中,我们可以看到,在EXTJS的app对象中,完成了两件事,加载ViewPort和Control。viewPort可以说是APP中的一个容器。用于装载View层中的组件。另在还加载了App中用到的Control。然后Controller中加载了App中所需要的Model、Store、View。Model抽象化了Data中的数据。Store依据Model层,装载Data中的数据。View装载显示Store中的数据。
3、在大体了解了Ext中的MVC结构后,我们就试着来写一个MVC的例子,看一下EXT中MVC的具体实现。
下图是我们项目中的JS的目录




(一)首先我们设置一下EXT的动态加载的属性。
Ext.Loader.setConfig({
enabled: true
});
上述代码是打开EXT的动态加载。
(二)首先我们创建一个EXT的Application。代码如下:
Ext.application({ name: 'AM',
appFolder: 'JS',
controllers: [
"Users" ],
launch: function () { Ext.create('Ext.container.Viewport', { layout: 'fit', items: [{
xtype: "userlist"
}] }); }});
App中的name属性定义一个名称,Ext会按照这个名称,自动为我们创建一个包名。appFolder定义App中动态加载JS文件的路径。Controller中定义应用程序中要加载的控制器类。App中的launch函数,该函数自动加载App中的ViewPort。
(三)接下来我们建立Controller类,代码如下:
Ext.define('AM.controller.Users', { extend: 'Ext.app.Controller',
views: [ 'user.List', 'user.Edit' ],
stores:[ "Users"
],
models:["User"],
init: function () {
this.control({
'viewport>panel': {
render: function () { alert("panel rendered"); }
}, 'userlist': {
itemdblclick: function (grid, record) {
var view = Ext.widget("useredit");
view.down("form").loadRecord(record);
}
}
});
}});
如上图 所描述的。control加载view、store、model。并且处理view中的触发的事件
(四)Model、Store、View中类的实现
Ext.define('AM.store.Users', { extend: 'Ext.data.Store', model: 'AM.model.User', data: [ { name: 'Ed', email: 'ed@sencha.com' }, { name: 'Tommy', email: 'tommy@sencha.com' } ]});

Ext.define('AM.model.User', { extend: 'Ext.data.Model', fields: ['name', 'email']});

Ext.define('AM.view.user.Edit', { extend: 'Ext.window.Window', alias: 'widget.useredit',
title: 'Edit User', layout: 'fit', autoShow: true,
width: 300,
height:150,
initComponent: function () { this.items = [ { xtype: 'form', items: [ { xtype: 'textfield', name: 'name', fieldLabel: 'Name' }, { xtype: 'textfield', name: 'email', fieldLabel: 'Email' } ] } ];
this.buttons = [ { text: 'Save', action: 'save' }, { text: 'Cancel', scope: this, handler: this.close } ];
this.callParent(arguments); }});

Ext.define('AM.view.user.List', { extend: 'Ext.grid.Panel', alias: 'widget.userlist',
title: 'All Users',
initComponent: function () {
this.store = "Users";
this.columns = [ { header: 'Name', dataIndex: 'name', flex: 1 }, { header: 'Email', dataIndex: 'email', flex: 1 } ];
this.callParent(arguments); }});

以上就是MVC的示例,EXT的MVC把View、Model、Control单独分离。这样便于以后的重用。如有不妥之处,还请留言。大家一块儿学习。

分享到:
评论

相关推荐

    ExtJS MVC 官方实例

    3. **控制器(Controller)**:控制器是MVC架构中的关键组件,它监听用户操作、管理视图和模型之间的交互。控制器可以设置监听器来响应特定事件,比如按钮点击,然后调用相应的方法来更新模型或视图。在ExtJS中,...

    extJS4 MVC demo项目入门

    extJS4版本是该框架的一个重要里程碑,带来了许多改进和新特性,特别是对MVC架构的支持,让项目的代码组织和维护更为方便。 MVC模式则是计算机软件中的一种设计模式,主要通过将应用分为三个核心组件(模型Model、...

    Extjs4 MVC小实例

    ExtJS 4是一个强大的JavaScript库,用于构建交互式的、数据驱动的Web应用程序。MVC(Model-View-Controller)...通过学习这个实例,你可以更好地掌握ExtJS 4中的MVC架构,为构建复杂、高效的企业级Web应用打下基础。

    extjs_mvc架构_实例

    EXTJS MVC架构是一种用于构建富客户端应用程序的框架,它基于经典的Model-View-Controller(模型-视图-控制器)设计模式。EXTJS是Sencha公司推出的一个强大的JavaScript库,专门用于创建桌面级的Web应用程序,提供了...

    Extjs4.0 mvc模式开发

    它引入了Model-View-Controller(MVC)架构模式,帮助开发者更好地组织和管理代码,提高项目的可维护性和可扩展性。在本工程中,我们将深入探讨ExtJS 4.0的MVC模式,以及如何通过controller、view、model和store来...

    ExtJS MVC示例

    ExtJS MVC示例是基于ExtJS 4.2.0框架的一个典型应用场景,它展示了如何在Web应用中利用MVC(Model-View-Controller)设计模式进行开发。MVC模式是一种软件设计模式,用于分离应用程序的数据、用户界面和逻辑控制,以...

    Extjs 4.2.0 MVC 架构 官方文档例子中文

    控制器是Extjs MVC架构中的关键组成部分之一,主要用于处理用户的交互行为。通过定义控制器,我们可以更清晰地分离业务逻辑与视图层。 ##### 3.1 创建控制器 在`app/controllers`目录下创建控制器文件。例如,在`...

    extJs4.2MVC示例

    严格按照MVC架构分的曾,可以运行的extJs4.2MVC示例,在myclipse加到一个项目里的的webroot文件夹下,运行index.html即可

    ExtJS4官方指南:MVC架构简体中文版宣贯.pdf

    在本文中,我们将深入探讨ExtJS 4的MVC架构,这是一种强大的工具,用于构建复杂且易于维护的富客户端应用程序。MVC,即Model-View-Controller,是一种设计模式,它将应用程序的不同部分分离,以提高可读性、可扩展性...

    extjs mvc 完整demo

    EXTJS MVC 完整 demo 是一个基于 EXTJS 框架实现的模型-视图-控制器(Model-View-Controller)架构的示例项目。EXTJS 是一款强大的前端开发框架,用于构建桌面级的富互联网应用程序(RIA)。它提供了一套完整的组件...

    ExtJs 4 中的MVC应用架构

    通过这种方式,ExtJS 4的MVC架构提供了一种强大且灵活的工具,允许开发者构建复杂的应用程序,同时保持代码的清晰性和可维护性。它不是一个严格的设计模式,而是提供了一种框架,可以帮助开发者遵循最佳实践,提高...

    ExtJS MVC入门级开发案例

    这个"ExtJS MVC入门级开发案例"是一个理想的学习资源,适合初学者理解并掌握如何在ExtJS中应用MVC架构。 **1. MVC模式详解** Model(模型):负责处理应用程序的数据逻辑,与后端服务器进行交互,获取和存储数据。...

    Extjs4 MVC 官方实例整合 未改动 未删减 部署即可运行

    在ExtJS 4中,MVC(Model-View-Controller)设计模式是其核心架构,用于组织和管理应用程序的逻辑。这个官方实例集是ExtJS 4 MVC模式的一个完整展示,旨在帮助开发者理解并掌握如何使用MVC进行开发。 **MVC模式详解...

    extjs4MVC实现

    1. MVC 架构模式介绍 MVC 分为三个主要部分:Model(模型)、View(视图)和 Controller(控制器)。模型处理数据和业务逻辑,视图负责展示数据,而控制器充当两者之间的协调者,接收用户的输入并调用相应的模型和...

    activiti+spring mvc+maven+extjs mvc+mybatis一个简单的请假工作流

    整个项目结构可能是这样的:ExtJS MVC负责前端交互,通过Ajax与Spring MVC控制器通信,控制器再调用Activiti引擎处理请假流程,并利用MyBatis与数据库进行数据交换。这种集成方案提供了从前端到后端的完整解决方案,...

    ExtJS的MVC模式

    ExtJS的MVC模式是其框架的核心特性之一,主要用于组织和管理复杂的用户界面代码,确保应用的可维护性和可扩展性。在深入讲解MVC模式之前,先了解一下ExtJS本身。ExtJS是一款基于JavaScript的开源UI库,它提供了一套...

    ExtJS 4 MVC

    ExtJS 4 MVC是一个强大的前端开发框架,它利用模型-视图-控制器(Model-View-...MVCWithExtJS4这个压缩包文件可能包含了实现这些概念的示例代码,通过学习和研究这些代码,你将能够更好地掌握Ext JS 4的MVC架构。

    extjs mvc frame

    在EXTJS中,MVC框架是其核心特性之一,它使得EXTJS应用可以更加结构化和模块化。 在这个"EXTJS MVC demo"个人练习例子中,我们可以看到以下几个关键组成部分: 1. **Handler.ashx**: 这通常是一个HTTP处理程序,...

    EXTJS 的 MVC 开发例子

    6. **App**:应用程序(App)是EXTJS MVC架构的入口点,通过`Ext.application`配置启动整个应用。它可以包含多个控制器、视图、模型和store,定义了应用的启动流程和路由策略。 在"EXTJS MVC入门级开发案例"中,你...

Global site tag (gtag.js) - Google Analytics