ExtJS学习笔记-基础概念

ExtJS框架分层

Ext Fundation层负责创建Ext实例,部分工具实例和类系统。通过类系统我们可以扩展类,覆盖方法和属性,向类添加mixins和configurations,以及一些其他的事情。

注:在开发中应该使用ext-all-dev.js,它比ext-all-debug.js提供了更多的调试信息。

ExtJS的类系统

Ext.define

该方法在内部调用类管理器的create方法创建一个新的类,也可以用来覆盖已存在的类的方法和属性;

Ext.create

该方法是类管理器内部的instantiate方法的别名,可以通过此方法为已定义的类创建实例;

Ext.widget

该方法内部通过类管理器的instantiateByAlias方法根据别名参数构建类的实例

 

注:1)当使用Ext.define方法定义类时,默认会扩展Ext.Base类。

2)ExtJS中的每一个类实际上是Ext.Class类的一个实例。当调用Ext.define方法定义类时,实际上是创建了一个Ext.Class的实例。

 

在ExtJS中,创建一个类时,其内部处理过程包括一些前置处理为创建类做准备,也包括一些类创建后的后置处理,如下图所示:



 前置处理包括:

  • className定义这个类的名称空间和名字;
  • loader 查找类的依赖,如果这些依赖不存在则尝试加载它们;
  • extend 在新类中添加从父类中继承的所有方法和属性;
  • statics 为当前类定义添加统计分析相关的方法和属性;
  • inheritableStatics 此阶段添加来自父类的统计方法及属性(如果存在);
  • config 为配置项创建get和set方法;
  • mixins 继承所有mixin类的方法和属性;
  • xtype 为新类定义xtype;
  • alias 为新类定义别名;

后置处理包括:

  • alias 将新类的别名注册到类管理器;
  • singleton 为新类创建一个单例实例;
  • alternateClassName 为创建的新类定义其它的名称;
  • uses 导入新类所使用的所有其它类;

ExtJS操作DOM

Ext.Element

ExtJS通过Ext.Element类来封装DOM节点,并提供了各种方法来操作节点。

var div = Ext.Element.get("main");  

等同于 

div = Ext.get("main");

Ext.DomQuery

ExtJS通过Ext.DomQuery方法在DOM树中查找节点,查找方式遵循CSS3选择器规范和基本的XPath规范。

 

varlis = Ext.DomQuery.select("#main .menu ulli");//Step 1
lis = Ext.get(lis); //Step 2

 

 

第2步将第一步返回的结果封装成一个Ext.CompositeElementLite集合,通过这个集合可以像Ext.Element类提供的API那样同时修改所有节点。

上面的代码等同于:

 

var h1 = Ext.select("#main div[class=content] h1");   
h1.setStyle("color","#003399");

 Ext.DomHelper

 

该工具类提供了方法用于创建DOM节点和HTML片段。

 

Ext.DomHelper.append(Ext.getBody(),{    
	tag    : "div",    
	style  : {      
		width  : "100px",      
		height  : "100px",      
		border  : "2px solid #333",     
		 margin : "20px auto"  
	 } 
});

 

var h1 = Ext.DomHelper.createDom({  
	tag  : "h1",  
	html  : "This is the title!" 
});

 删除节点

Ext.fly(h1).remove(); 

 Ext.fly方法类似于Ext.get方法,它返回一个Ext.Element对象指向查找到的节点。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值