`
kejiangwei
  • 浏览: 9365 次
  • 性别: Icon_minigender_1
  • 来自: 福建
最近访客 更多访客>>
社区版块
存档分类
最新评论

ExtJs 类的设计

阅读更多
   一、类的设计
    JavsScript并没有提供一个自动的调用父类构造器的机制,所以必须通过属性superclass在构造器中显式调用父类。第一个参数总是this,以保证构造器工作在调用函数的作用域。

MyNewClass = function(arg1, arg2, etc) {
	// 显示调用父类的构造函数
	MyNewClass.superclass.constructor.call(this, arg1, arg2, etc);
};

Ext.extend(MyNewClass, SomeBaseClass, {
	theDocument : Ext.get(document),
	myNewFn1 : function() {
		// etc
	},
	myNewFn2 : function() {
		// etc
	}
});


二、扩展Ext.Component
    一个可重用模板
MyComponent = Ext.extend(Ext.some.component, {
    //缺省构造参数,可被自定义设置覆盖
    propA: 1,
 
    initComponent: function(){
       //在组件初始化期间调用的代码
 
        //因为配置对象应用到了“this”,所以属性可以在这里被覆盖,或者添加新的属性
        //(如items,tools,buttons)
        Ext.apply(this, {
            propA: 3
        });
 
       //调用父类代码之前        
 
        //调用父类构造函数(必须)
        MyComponent.superclass.initComponent.apply(this, arguments);
 
       //调用父类代码之后
        //如:设置事件处理和渲染组件
    },
 
    //覆盖其他父类方法
    onRender: function(){
 
        //调用父类代码之前
 
        //调用父类相应方法(必须)
        MyScope.superclass.onRender.apply(this, arguments);
 
        //调用父类代码之后
 
    }
});
 
//注册成xtype以便能够延迟加载
Ext.reg('mycomponentxtype', MyComponent);

    创建以上代码的实例:
var myComponent = new MyComponent({
    propA: 2
});
//或者延迟加载:
{..
  items: {xtype: 'mycomponentxtype', propA: 2}
..}

属性propA将被设置3次,按顺序分别是1,2,3 。通过跟踪代码(和注释) ,你会发现初始值为1(构造缺省),然后通过用户配置对象设置为2,最后在initComponent方法中被覆盖设置成3.希望这个例子能让你稍微明白代码执行的顺序(而不是按照你读代码的顺序!)。

因为组件是其他组件的基础,所以下面代码是获取基础组件快捷方法。
var topCmp = (function(o){while(o.ownerCt){o=o.ownerCt} return o;})(this);



附:
附件为 ext-2.2/examples/grid 下的例子。(注意几种继承方式的写法)

以上参考自:http://extjs.com/learn/Manual:Component:Extending_Ext_Components
分享到:
评论

相关推荐

    ExtJS 界面设计器

    通过扩展ExtJS的现有类,可以创建具有独特功能的新组件,并在设计器中使用。 10. **文档和支持**:ExtJS社区提供了详尽的文档和论坛支持,遇到问题时可以查阅官方文档或向社区求助,以解决在使用设计器过程中遇到的...

    extjs流程界面设计器参考_ExtJS工作流设计器_extjs工作流_extjs_

    ExtJS的`Ext.draw.Container`类可以用来创建这样一个画布,支持拖放操作,允许用户放置和调整工作流元素的位置。 3. **连接线**:工作流元素之间通常需要通过连接线表示流程流转。ExtJS提供了绘图API,可以用来绘制...

    ExtJS设计模式

    ### ExtJS设计模式详解 #### 引言 随着前端技术的发展与成熟,越来越多的企业和开发者开始重视前端架构的搭建与优化。作为一款优秀的前端框架,ExtJS不仅在UI组件管理和风格统一方面表现出色,同时也引入了许多经典...

    轻松搞定Extjs 带目录

    - **类的定义**: Extjs中的类继承于JavaScript原生类,通过Ext.extend来定义。这是Extjs实现面向对象编程的基础。 - **命名空间**: 命名空间在Extjs中用于组织和管理代码,避免变量和函数名的冲突。 #### 3. Extjs ...

    类extjs的c++界面库

    标题中的“类extjs的c++界面库”指的是一个C++开发的用户界面库,它借鉴了ExtJS的设计理念和架构。ExtJS是一款基于JavaScript的前端框架,以其丰富的组件库和强大的布局管理闻名,用于构建复杂的Web应用程序。而这个...

    包含各种类型的extjs小图标,Extjs4小图标

    - ExtJS 4允许开发者自定义图标,可以通过编写CSS来设置新的背景图片,或者使用Icon类并传入自定义的SVG代码或数据URL。 6. **响应式设计**: - 在移动设备上,图标可能需要调整大小或样式以适应不同的屏幕尺寸。...

    ExtJs3.3中文API.CHM_extjs3.3中文文档_

    在"ExtJs3.3中文API.CHM"中,开发者可以找到关于ExtJS 3.3的所有API和类的详细描述,以及相关的示例代码。 ExtJS 3.3的核心特性包括: 1. **组件化**:ExtJS基于组件模型,提供了一系列预定义的UI组件,如按钮、...

    EXTjs4.0学习文档

    在 4.0 版本中,EXTJS 提出了 MVC 模式的开发,支持组件化、模块插拔化设计以及提供本地数据源的支持。 组件是 EXTJS 的基本概念之一,能够以图形化形式呈现界面的类,其中还可以分为容器组件与元件组件。容器组件...

    extjs icon小图标

    在你提到的"extjs icon小图标"资源中,包含了一万个小图标,这为开发者提供了大量的选择,以满足不同设计需求。这些图标可能涵盖了各种类别,如操作状态(如成功、警告、错误)、导航方向、编辑操作(如新建、删除、...

    ExtJs2相关书籍

    在这个文档中,开发者可以直观地看到ExtJS2的类与类之间的关系,更好地理解其内部结构和设计模式。这对于深入学习ExtJS2的架构,优化代码组织,以及提升代码的可维护性非常有帮助。 在学习这些资源时,建议首先阅读...

    ExtJS 3.4 源码包

    - **组件模型**:ExtJS基于组件化设计,每个UI元素都是一个可复用的组件,如窗口(Window)、表格(Grid)、表单(Form)等。 - **布局管理**:ExtJS提供多种布局方式,如Fit布局、Border布局、Table布局等,使得...

    ExtJS 多文件上传 UploadDialog For ExtJS3.x

    在Web开发领域,特别是使用ExtJS框架进行界面设计时,文件上传功能是必不可少的一部分。然而,随着ExtJS版本的更新,原有的多文件上传组件可能不再兼容新版本。本篇文章将详细介绍如何针对ExtJS 3.x版本定制和优化一...

    extjs 2000个 icon 图标素材

    16x16像素的大小也符合许多设计规范,确保在不同设备和分辨率下都能显示得体。 在Web开发中,图标素材通常以SVG(Scalable Vector Graphics)或PNG格式提供,SVG支持矢量图形,可以在任何尺寸下保持清晰,而PNG则...

    EXTJS 项目图标

    EXTJS的图标设计遵循现代UI设计原则,提供了一致性和专业感,使得开发者可以轻松地为他们的EXTJS应用增添美观的图形元素。 描述 "EXTJS项目图标,共1001个文件,从此找图标不用愁了" 暗示这个压缩包包含了一个庞大...

    ExtJs组件类的对应表

    ### ExtJs组件类的对应表解析 #### 引言 ExtJs是一款强大的JavaScript框架,用于构建复杂的、数据密集型的应用程序。它提供了大量的组件和工具,使得开发者能够快速地创建美观且功能丰富的用户界面。本文将详细...

    ExtJs与C#做的简易毕业设计论文管理系统

    【标题】:“ExtJs与C#做的简易毕业设计论文管理系统”是基于Web的软件开发项目,旨在提供一个方便、简洁的平台,用于管理和处理毕业设计论文的各个环节。这个系统利用了ExtJs的富客户端框架和C#的后端服务器端能力...

    类extjs的c++简单ui库

    "类extjs的c++简单ui库"是一个针对C++编程环境设计的用户界面库,其设计理念是模仿流行的JavaScript框架ExtJS。这个库的目标是为C++开发者提供一个易用且功能基础的UI解决方案,使得在C++环境中构建图形用户界面...

    EXTJS面板及布局类(DOC)

     面板(panel)是ExtJS中一个很重要的概念,它相当于一幅画板,我们可以在它上面放置需要的各种组件,并使用不同的布局类对组件的摆放位置进行格式化,掌握这些布局类的特点及使用方式是突破ExtJS页面设计的关键,...

    ExtJS.in.Action

    第二章“Back to the basics”则着重讲解了ExtJS的基础概念和技术要点,包括如何设置项目环境、理解基础类库以及如何创建基本的UI组件。通过这一章的学习,读者可以掌握ExtJS的核心概念,并为后续学习打下坚实的基础...

Global site tag (gtag.js) - Google Analytics