Ext JS 自定义控件:initComponent与constructor的扩展
需积分: 9 36 浏览量
更新于2024-07-26
1
收藏 49KB DOCX 举报
"这篇资料主要介绍了如何在Ext框架下实现自定义控件,重点讨论了两种扩展方法:重载`initComponent`函数和重载`constructor`方法。这两种方法都是为了在EXT环境中创建个性化的组件,例如自定义的GridPanel。"
在Ext JS中,自定义控件是一个常见的需求,以便满足特定的界面或功能需求。本文提到的两种方法是实现这一目标的核心途径。
1. 重载`initComponent`函数
`initComponent`是Ext JS组件生命周期中的一个重要方法,它用于初始化组件的基本配置。当你需要在组件创建时添加额外的配置或者进行一些特殊的设置时,可以重载这个方法。以下是一个简单的例子:
```javascript
var myArticleList = Ext.extend(Ext.grid.GridPanel, {
initComponent: function() {
myArticleList.superclass.initComponent.call(this); // 执行父类的initComponent,确保组件的正常初始化
this.store = new Ext.data.JsonStore({
fields: ['asdf'],
url: 'www.google.com'
});
// 其他初始化操作,如分页、工具条、事件绑定等
}
});
```
在这个例子中,我们创建了一个新的GridPanel子类,并在`initComponent`中设置了JsonStore作为数据源。调用`myArticleList.superclass.initComponent.call(this)`确保了父类的初始化过程不会被忽略,这是重载此类方法的关键。
2. 重载`constructor`函数
另一种扩展组件的方式是通过重载`constructor`函数。`constructor`是每个类实例化时会调用的方法,通常用于接收配置对象(config object)并应用到组件实例上。下面是一个示例:
```javascript
var myArticleList = Ext.extend(Ext.grid.GridPanel, {
constructor: function(config) {
Ext.apply(this, config); // 将config对象的属性应用到当前组件实例
myArticleList.superclass.constructor.call(this);
// 在这里可以进行其他初始化操作
}
});
```
`Ext.apply`函数用于将配置对象的属性合并到当前对象,如果有冲突,config中的属性会覆盖已有属性。`myArticleList.superclass.constructor.call(this)`保证了父类的构造函数得以执行。
此外,自定义控件还可以涉及到事件的处理。在`constructor`中,你可以添加新的事件,比如:
```javascript
this.addEvents('customEvent'); // 添加自定义事件'customEvent'
```
然后在适当的地方触发这个事件:
```javascript
this.fireEvent('customEvent', arg1, arg2); // 发布自定义事件,传递参数
```
通过以上两种方式,开发者可以根据需求扩展EXT控件,创建具有特定行为和外观的自定义组件,以适应各种复杂的用户界面场景。同时,自定义事件的机制使得这些组件能够与其他组件进行有效的通信,增强了系统的可扩展性和灵活性。
2009-05-06 上传
2013-03-25 上传
2021-01-05 上传
2010-06-24 上传
2020-12-31 上传
2021-01-20 上传
肥龙上天
- 粉丝: 52
- 资源: 8
最新资源
- 平尾装配工作平台运输支撑系统设计与应用
- MAX-MIN Ant System:用MATLAB解决旅行商问题
- Flutter状态管理新秀:sealed_flutter_bloc包整合seal_unions
- Pong²开源游戏:双人对战图形化的经典竞技体验
- jQuery spriteAnimator插件:创建精灵动画的利器
- 广播媒体对象传输方法与设备的技术分析
- MATLAB HDF5数据提取工具:深层结构化数据处理
- 适用于arm64的Valgrind交叉编译包发布
- 基于canvas和Java后端的小程序“飞翔的小鸟”完整示例
- 全面升级STM32F7 Discovery LCD BSP驱动程序
- React Router v4 入门教程与示例代码解析
- 下载OpenCV各版本安装包,全面覆盖2.4至4.5
- 手写笔画分割技术的新突破:智能分割方法与装置
- 基于Koplowitz & Bruckstein算法的MATLAB周长估计方法
- Modbus4j-3.0.3版本免费下载指南
- PoqetPresenter:Sharp Zaurus上的开源OpenOffice演示查看器