相信大家看了Ext2.0后, 印象最深的应该是Ext的组件模式,很好的规范了组件设计,用Manager的统一管理,也是很好的方式.下面简单分析一下Ext的组件结构.
Ext的所有组件都是扩展于Ext.Component, 而后子类扩展和集成形成了一个单根的组件树.
Ext中使用组件的方式很不一样,可以看一个例子.
js 代码
- var formPanel = new Ext.form.FormPanel({
- items: [{
- xtype: 'hidden',
- name: 'domainId'
- },{
- fieldLabel: '姓名',
- name: 'name',
- allowBlank:false
- },{
- fieldLabel: '权限',
- xtype: 'combo',
- name: 'auth'
- },{
- fieldLabel: '帐号',
- name: 'account'
- },{
- fieldLabel: 'Email',
- name: 'email',
- vtype:'email'
- },{
- fieldLabel: '启用',
- xtype: 'checkbox',
- name: 'enabled'
- }
- ]
- });
如此这样就能实现一个包含了很多元素的表单, items里面定义了表单要显示的输入框等组件,但是items里面仅仅是简单的json对象,怎么能显示出来各种不同的表单元素呢?
我们注意到items的每一个元素几乎都有一个xtype属性,这个xtype属性就是描述组件类的关键.
其实Ext里面的组件(Panel, Form Datepicker等等), 在定义完Class之后, 都会把自己注册到Ext.ComponentMgr里面. 简单看一个box的组件, 在BoxComponent.js文件的最后一行可以看到:
js 代码
- Ext.reg('box', Ext.BoxComponent);
而在, ComponentMgr.js文件里
js 代码
-
- registerType : function(xtype, cls){
- types[xtype] = cls;
- cls.xtype = xtype;
- },
-
-
- create : function(config, defaultType){
- return new types[config.xtype || defaultType](config);
- }
- };
- }();
-
-
-
- Ext.reg = Ext.ComponentMgr.registerType;
其实是执行了
registerType 这个方法,方法很简单, 把xtype这个名字和对应的cls放到types里面, 而后看到create 我们应该会明白了, 以后想创建组件的时候,就调用 create({xtype: 'box'}) 就OK了
那么我们看看items里面的元素是怎么创建的吧, form的继承树中有一个Ext.Container类, 恩,就在这个类里呢:
js 代码
-
- lookupComponent : function(comp){
- if(typeof comp == 'string'){
- return Ext.ComponentMgr.get(comp);
- }else if(!comp.events){
- return this.createComponent(comp);
- }
- return comp;
- },
-
-
- createComponent : function(config){
- return Ext.ComponentMgr.create(config, this.defaultType);
- },
恩,基本就是这样了, 希望对大家理解Ext有所帮助
/************************************************/
附件是我弄的一个Ext的组件结构图, 还附有各个组件的说明, 希望大家喜欢, 大家快下呀....
- 描述: Ext的组件结构图
- 大小: 289.3 KB
分享到:
- 2007-10-20 18:20
- 浏览 10310
- 评论(53)
- 论坛回复 / 浏览 (27 / 31711)
- 查看更多
相关推荐
EXT组件和控件是Sencha EXT JS框架的核心部分,它提供了丰富的用户界面元素,用于构建交互式的Web应用程序。EXT Grid是EXT JS中的一个关键组件,主要用于展示和操作表格数据。这个“EXT 组件和控件的 视频教程”很...
在EXT5.0中,组件的可配置选项更多,而且提供了更强大的布局管理,如绝对布局、表单布局、流式布局等,使开发者能更自由地设计UI结构。 其次,EXT5.0改进了数据绑定机制,使得视图和模型之间的数据同步更加自动化。...
通过分析这个EXT 2.0项目源代码,开发者可以学习如何组织EXT应用程序的结构,如何利用EXT的API创建组件,如何处理数据交互,以及如何实现特定的功能。对于想要提升EXT编程技能或者希望理解EXT内部机制的人来说,这是...
Ext JS 4中的图表组件提供了创建复杂数据可视化的能力,支持多种图表类型,如条形图、折线图、饼图等。动画方面,Ext JS 4提供了一套流畅的动画引擎,可以增强用户体验,让界面变化显得平滑自然。 10. **扩展性...
在EXT应用开发中,数据通常是通过EXT的数据模型(Model)、数据存储(Store)和视图(View)进行管理的,这些数据文件可能用于模拟实际数据库中的数据,以便于测试和展示EXT组件的功能。 EXT的组件系统是其核心特性...
4. **高级图表**:EXT提供了多种图表类型,如折线图、柱状图、饼图等,可用于数据可视化。 5. **触摸支持**:EXT Touch是EXT的移动版本,专门用于开发触屏设备上的应用程序。 6. **AJAX通信**:EXT内置了AJAX功能...
EXT皮肤是EXT应用的外观表现,它定义了组件的颜色、字体、边框、阴影等视觉元素,使得EXT组件能够适应不同的设计风格和品牌要求。 EXT框架提供了丰富的组件库,包括表格、树形视图、面板、窗口、表单等,这些组件...
源代码分析可以帮助开发者自定义组件,调试问题,以及更好地集成EXT.NET到他们的项目中。此外,"包括Demo"意味着这个压缩包还包含了演示示例,这些示例通常展示了EXT.NET组件的各种用法,涵盖了基础到高级的各种功能...
EXT Pivot是一款基于EXT JS库开发的数据透视表组件,它提供了强大的数据分析和数据可视化功能,尤其适合在Web应用中处理和展示大量复杂数据。EXT JS是一个广泛使用的JavaScript框架,用于构建富客户端应用程序,其...
5. **图表和图形**:Ext JS 3.2版本对图表功能进行了增强,支持创建各种数据可视化图形,如柱状图、饼图、线图等,这对于数据展示和分析非常有用。 6. **Ajax和I/O**:通过内置的Ajax和I/O功能,开发者可以方便地与...
通过使用Enterprise Architect(EA)工具打开这个EAP工程文件,我们可以直观地查看和分析Ext框架的类结构、函数关系以及设计模式等重要概念。 首先,让我们了解下Ext JS。Ext JS是一个广泛使用的JavaScript库,它...
8. **源代码分析**:对于压缩包中的文件,可以通过查看源代码学习到如何配置Ext JS,如何组织应用结构,以及如何实现特定的桌面功能。这对于想要深入理解Ext JS 或者想构建类似应用的开发者来说是非常宝贵的资源。 ...
APK是Android应用的安装包,包含所有必要的组件如代码、资源和元数据,可以使用`ext2explore`来定位并提取这些文件,以便于调试、分析或反编译。 总的来说,`simg2img`和`ext2explore`这两个工具为非Linux环境下的...
EXT还包含一套强大的图表组件(Charts),支持创建各种2D和3D图表,如柱状图、饼图、线图等,这在数据分析和展示方面非常有用。EXT的布局管理器则可以根据容器的大小动态调整子组件的位置和大小,确保界面在不同设备...
EXT 的API文档是学习和开发的重要参考资料,其中包含了所有EXT组件、配置、方法、事件等的详细说明。`Ext+api+中文版.chm`文件是一个帮助文件,很可能包含了EXT库的完整API翻译,这对于中文使用者来说非常有价值,...
2.3 功能结构图 29 2.4 开发与运行环境 31 2.5 数据库设计 31 2.6 本章小结 34 第3章 Ext Core实例—.NET语言实现 35 3.1 创建应用并设置开发环境 35 3.2 自定义Membership提供程序 37 3.3 创建母版页 38 3.4 首页...
- **组件与容器**:Ext JS 中的所有 UI 元素都是通过组件(Component)来表示的,而容器(Container)则用来组织这些组件。组件负责具体的 UI 表现,而容器则负责布局管理。 - **事件驱动**:Ext JS 采用事件驱动...
EXT 2.0是Web开发框架的一个重要版本,主要用于构建富客户端应用,它基于JavaScript,提供了丰富的组件库...通过分析EXT 2.0的源码,你可以学习到优秀的代码组织结构和设计模式,为自己的JavaScript编程技能添砖加瓦。
4. `view/main/Main.js` - 应用的主要视图,可能包含数据网格、表单等EXT组件。 5. `controller/Main.js` - 主控制器,负责协调视图和模型之间的交互。 6. `resources/css/app.css` - 应用的样式文件,定制EXT组件的...