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
分享到:
相关推荐
1. **EXT类体系**:EXT基于面向对象的编程理念,采用类继承的方式来组织代码。所有EXT组件都继承自一个基础类,如Ext.Component,通过扩展和组合这些基类来创建特定的UI元素。 2. **静态方法的概念**:静态方法是不...
文件名"Ext+JS"可能是指包含Ext JS库的JavaScript文件,通常这类文件会包含Ext JS的所有组件、工具和功能,开发者可以通过引用这个文件来快速引入Ext JS框架。 在实际开发中,使用Ext JS 的步骤通常包括: 1. 引入...
在Ext JS 4.x中,JSB文件(JavaScript Bindings)是用于生成类依赖图和源代码映射的工具。这个文件可以帮助开发者更好地理解代码间的依赖关系,同时在编译和优化时提供支持。通过使用JSBuilder或Sencha Command,你...
EXT,全称EXT JS,是一种基于JavaScript的前端框架,由Sencha公司开发,主要用于构建富互联网应用程序(RIA)。EXT提供了一套完整的组件模型、数据绑定、事件系统和强大的布局管理,使得开发者能够创建功能丰富的、...
2. **应用启动与`Ext.onReady`**:EXT_JS应用通常从`Ext.onReady`函数开始执行,这个函数会在DOM加载完成并且EXT_JS库加载完毕后被调用。开发者可以在此函数中编写初始化代码,如显示消息提示或者创建UI组件。 3. *...
Gwt-ext通过提供Java封装类,让开发者可以使用Java API来操作和配置Ext JS组件,从而保持代码的整洁和一致性。 在学习Gwt-ext时,首先需要理解以下几个关键知识点: 1. **组件体系**:了解Ext JS的组件模型,包括...
4. Ext.grid.GridPanel:表格组件的主要类,包含了数据绑定、列配置、行处理等功能。 5. Ext.layout.ContainerLayout:容器布局,定义了不同类型的布局策略,如Fit、Border、Table等。 三、常见界面代码示例 文档中...
Ext JS 是一个流行的JavaScript库,专门用于构建富客户端Web应用程序。这个"ext-4.0.0.jsb2.rar"文件包含的是Ext JS框架的4.0.0版本的源码和相关资源,以.jsb2(即JavaScriptBuilder 2)格式压缩。JavaScriptBuilder...
EXT_JS实用开发指南主要涵盖了EXT_JS框架的基础使用和核心组件,这是基于JavaScript的富客户端应用开发库,特别适合构建桌面级的Web应用。以下是对EXT_JS开发的一些关键知识点的详细解释: 1. **引入EXT_JS库**: ...
**EXT**框架的核心之一在于其丰富的事件处理机制和类体系结构。 - **自定义事件**:允许开发者为组件添加自定义的事件监听器,以便在特定操作发生时触发相应的回调函数。 - **浏览器事件**:EXTJS封装了许多常用的...
<script type="text/javascript" src="extjs/adapter/ext/ext-base.js"> <script type="text/javascript" src="extjs/ext-all.js"> ``` 以上代码分别引用了EXTJS的所有样式和脚本。值得注意的是,EXTJS提供了`Ext....
使用这个版本的Ext JS,开发者需要了解JavaScript基础,熟悉MVC(Model-View-Controller)设计模式,以及Ext JS的组件体系结构。例如,每个组件都有自己的配置选项,可以通过这些选项定制组件的行为和外观。此外,...
EXTJS是一个JavaScript库,它提供了一套完整的组件化UI框架,用于创建富有交互性的、响应式的Web应用。SDK(Software Development Kit)是开发者在构建EXTJS应用程序时必不可少的资源集合,包含了大量的源代码、文档...
4. **Ajax和Grid**:ExtJS的Grid组件可以轻松处理大量数据,支持分页、排序、过滤,并能与服务器进行Ajax通信,实现动态加载和数据更新。 5. **表单组件**:提供了各种表单元素,如文本框、选择框、日期选择器等,...
Ext JS是一款用于构建企业级Web应用程序的JavaScript库。它提供了丰富的UI组件、数据管理功能以及跨平台的支持,使开发者能够快速构建高性能的应用程序。本书旨在通过深入浅出的方式讲解Ext JS的核心概念和技术细节...
前者可能包含了EXT-D3的基础组件和核心功能,比如图表类、数据适配器以及与EXT JS框架集成的相关代码。后者则可能提供了Pivot-D3的具体实现,包括数据透视表容器、拖放交互逻辑和数据处理模块。 EXT-D3和Pivot-D3的...