`

Ext JS 4: 动态加载与新的类体系

阅读更多
Ext JS 4: 动态加载与新的类体系

1
Ext 4 部分新特性介绍:

define          新的类定义方式,使用增强的原型方式实现继承
mixin           混入类,类似多继承
setter/getter 属性读写方法配置
require          动态的依赖加载

2




3
Define

/**
 * 组件扩展 - 登录窗口
 */
Ext.define('App.LoginWindow', {
			extend : 'Ext.Window',

			title : '登录',

			initComponent : function() {
				Ext.apply(this, {
							items : [{
										xtype : 'textfield',
										name : 'username',
										fieldLabel : '账号'
									}, {
										xtype : 'textfield',
										name : 'password',
										fieldLabel : '密码'
									}]
						});

				this.callParent(arguments);
			}
		});


4
Mixin

/**
 * 音乐人
 */

Ext.define('Model.Musician', {
			extend : 'Model.Person',
            requires: ['Model'],
			mixins : {
				guitar : 'Interface.CanPlayGuitar',
				compose : 'Interface.CanComposeSongs',
				sing : 'Interface.CanSing'
			}
		});

/**
 * 混入用法
 */
        
/*
var someone = Ext.create('Model.Musician');

someone.getMixin('guitar').playGuitar();

// or 
someone.playGuitar();
        
*/


/**
 * 玩吉它
 */

Ext.define('Interface.CanPlayGuitar', {
			playGuitar : function() {
				Ext.Msg.alert('info', 'Play Guitar'); 
			}
		});



5
setter/getter

/**
 * 人
 */
// ExtJS3
/*
Model.Person = Ext.extend(Object, {
			name : 'noname',

			getName : function() {
				return this.name;
			},

			resetName : function() {
				this.setName('noname');
			},

			setName : function(newName) {
				this.name = this.applyName(newName) || newName;
			},

			applyName : function(newName) {
                
			}
		});
*/

// ExtJS4 框架会自动上面的四个方法.
Ext.define('Model.Person', {
			config : {
				name : 'noname'
			},
            
            // @override
            applyName : function(newName) {
                // 值改变时,执行一些动作
            }
		});


6
requires
uses

Model.js
/**
 * 命名空间
 */
 
 Ext.ns('Model');


Musician.js
/**
 * 音乐人
 */

Ext.define('Model.Musician', {
			extend : 'Model.Person',
            requires: ['Model'],
			mixins : {
				guitar : 'Interface.CanPlayGuitar',
				compose : 'Interface.CanComposeSongs',
				sing : 'Interface.CanSing'
			}
		});


ExtJS3 需要等框架加载完成后才能执行, 而ExtJS4 则会根据依赖动态加载JS执行.上面的 Model.Musician 会加载以下JS:
Musician.js
Model.js
Person.js
CanPlayGuitar.js
CanComposeSongs.js
CanSing.js
Interface.js


官方动态加载示例:
dev.sencha.com/deploy/LoaderDemo.zip

7
Statics

类名.方法名
    statics : [
        count : 0,
        fun : function() {}
    ]


// 重载count时 this.getStatics().count 为父类, 而 this.self.count 则为子类.



  • 大小: 105.3 KB
0
0
分享到:
评论

相关推荐

    EXT dojochina Ext类静态方法.rar

    1. **EXT类体系**:EXT基于面向对象的编程理念,采用类继承的方式来组织代码。所有EXT组件都继承自一个基础类,如Ext.Component,通过扩展和组合这些基类来创建特定的UI元素。 2. **静态方法的概念**:静态方法是不...

    Ext用户UI界面优秀框架

    文件名"Ext+JS"可能是指包含Ext JS库的JavaScript文件,通常这类文件会包含Ext JS的所有组件、工具和功能,开发者可以通过引用这个文件来快速引入Ext JS框架。 在实际开发中,使用Ext JS 的步骤通常包括: 1. 引入...

    ext-js4.x配置所需jsb和js文件

    在Ext JS 4.x中,JSB文件(JavaScript Bindings)是用于生成类依赖图和源代码映射的工具。这个文件可以帮助开发者更好地理解代码间的依赖关系,同时在编译和优化时提供支持。通过使用JSBuilder或Sencha Command,你...

    ext学习资料 20篇详细学习笔记 初学者ext学习的文档

    EXT,全称EXT JS,是一种基于JavaScript的前端框架,由Sencha公司开发,主要用于构建富互联网应用程序(RIA)。EXT提供了一套完整的组件模型、数据绑定、事件系统和强大的布局管理,使得开发者能够创建功能丰富的、...

    EXT_JS实用开发指南_个人整理笔记.docx

    2. **应用启动与`Ext.onReady`**:EXT_JS应用通常从`Ext.onReady`函数开始执行,这个函数会在DOM加载完成并且EXT_JS库加载完毕后被调用。开发者可以在此函数中编写初始化代码,如显示消息提示或者创建UI组件。 3. *...

    Gwt-ext学习笔记

    Gwt-ext通过提供Java封装类,让开发者可以使用Java API来操作和配置Ext JS组件,从而保持代码的整洁和一致性。 在学习Gwt-ext时,首先需要理解以下几个关键知识点: 1. **组件体系**:了解Ext JS的组件模型,包括...

    Ext中文帮助文档(Ext常见界面源码,及类库方法详解)

    4. Ext.grid.GridPanel:表格组件的主要类,包含了数据绑定、列配置、行处理等功能。 5. Ext.layout.ContainerLayout:容器布局,定义了不同类型的布局策略,如Fit、Border、Table等。 三、常见界面代码示例 文档中...

    ext-4.0.0.jsb2.rar

    Ext JS 是一个流行的JavaScript库,专门用于构建富客户端Web应用程序。这个"ext-4.0.0.jsb2.rar"文件包含的是Ext JS框架的4.0.0版本的源码和相关资源,以.jsb2(即JavaScriptBuilder 2)格式压缩。JavaScriptBuilder...

    EXT_JS实用开发指南_个人整理笔记

    EXT_JS实用开发指南主要涵盖了EXT_JS框架的基础使用和核心组件,这是基于JavaScript的富客户端应用开发库,特别适合构建桌面级的Web应用。以下是对EXT_JS开发的一些关键知识点的详细解释: 1. **引入EXT_JS库**: ...

    ext+js深入浅出

    **EXT**框架的核心之一在于其丰富的事件处理机制和类体系结构。 - **自定义事件**:允许开发者为组件添加自定义的事件监听器,以便在特定操作发生时触发相应的回调函数。 - **浏览器事件**:EXTJS封装了许多常用的...

    EXT_JS实用教程

    <script type="text/javascript" src="extjs/adapter/ext/ext-base.js"> <script type="text/javascript" src="extjs/ext-all.js"> ``` 以上代码分别引用了EXTJS的所有样式和脚本。值得注意的是,EXTJS提供了`Ext....

    ext-3[1].0.0

    使用这个版本的Ext JS,开发者需要了解JavaScript基础,熟悉MVC(Model-View-Controller)设计模式,以及Ext JS的组件体系结构。例如,每个组件都有自己的配置选项,可以通过这些选项定制组件的行为和外观。此外,...

    ext5.1 sdk

    EXTJS是一个JavaScript库,它提供了一套完整的组件化UI框架,用于创建富有交互性的、响应式的Web应用。SDK(Software Development Kit)是开发者在构建EXTJS应用程序时必不可少的资源集合,包含了大量的源代码、文档...

    ext-3.2-beta_6256-157.zip

    4. **Ajax和Grid**:ExtJS的Grid组件可以轻松处理大量数据,支持分页、排序、过滤,并能与服务器进行Ajax通信,实现动态加载和数据更新。 5. **表单组件**:提供了各种表单元素,如文本框、选择框、日期选择器等,...

    [深入浅出Ext.JS.徐会生&何启伟&康爱媛)附录.pdf

    Ext JS是一款用于构建企业级Web应用程序的JavaScript库。它提供了丰富的UI组件、数据管理功能以及跨平台的支持,使开发者能够快速构建高性能的应用程序。本书旨在通过深入浅出的方式讲解Ext JS的核心概念和技术细节...

    ext-d3-pivot-d3-component.zip

    前者可能包含了EXT-D3的基础组件和核心功能,比如图表类、数据适配器以及与EXT JS框架集成的相关代码。后者则可能提供了Pivot-D3的具体实现,包括数据透视表容器、拖放交互逻辑和数据处理模块。 EXT-D3和Pivot-D3的...

Global site tag (gtag.js) - Google Analytics