xtype:在ExtJS的可视化组件部署中的一种机制,即通过指定xtype的值,来告诉容器如何初始化所包含的组件,如xtype:"textfiled",表示使用 Ext.form.TextFile 来进行初始化当前组件。
主要作用是延时实例化。
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 组件创建流程