日期:2014-05-16 浏览次数:20344 次
做Extjs有一段时间了,遇到了各种问题,现在我对xtype 做一下总结和基本的说明
?
xtype 就是Extjs 用于创建对象的一种形式
?
就比如xtype:'button' 就会创建Button对象似的
?
但这些xtype是谁来管理的,在看了源代码和大量实践后,发现
?
?
'Ext.ComponentManager‘
?
是管理xtype和component对象的
?
在这个里面我们可以很轻松的发现,extjs是会先把messagebox相应的component都加载进来,在进行你定义的xtype处理的
?
xtype到底有什么好处那?
?
生成对象的代码如下:
?
create: function(component, defaultType){ if (component instanceof Ext.AbstractComponent) { return component; } else if (Ext.isString(component)) { return Ext.createByAlias('widget.' + component); } else { var type = component.xtype || defaultType, config = component; return Ext.createByAlias('widget.' + type, config); } },?
1.内存节约
2.加快browser运行速度
?
其实可以这样说,这种方式就是延迟实例化
?
很明了吧
?
extjs的工作基本流程是
?
1.实例化
2.渲染
3.显示
?
上面xtype延迟实例化
那么可以想象,如果你用Ext.create或者new对象的形式,创建extjs component 那么
xtype的属性是在上面定义的组件显示的时候才会被创建然后渲染,显示。
?
这就是很多人不明白的extjs 组件创建流程
?
?