组件的管理与XType

早在Ext 1.x的时候就有Ext.ComponentMgr这个类了,但那时仅是一个雏形,到Ext 2.0的时侯才作为重要的成员,参与到组件的对象模型中。

Ext将页面中的组件的创建、渲染和销毁抽象成为组件的对象模型。全部的组件均支持延时渲染(lazy.rendering)即有需要的情况才会真正地渲染。

在加载JS文件时,也就是定义类的时候,每个主要的组件类如:GridPanel、Panel和DataView都会把自己注册登记到组件管理器中(Component Manager)。注册登记的那个名字叫做“xtype”。

浏览2.0例子的代码你或许会发现就有“xtype”的配置项。XType配置项代表着这个对象属于哪个组件类型,而到时(渲染时)就会调用相关的构造器(constructor)。整个过程无须手工调控,均由ComponentMgr对象内部控制。总得来说,用字面化对象(object literal)的方式定义了一个组件实例的功能,不失为一种便捷的做法(handy shortcut)。

另外你只要在服务端生成JSON便可动态加载这些组件。由于Ext为全体组件提供注册登记的维护,我们可方便地使用Ext.getCmp(COMPONENTID)来访问页面上任意一个组件,这样的好处是不要考虑这些组件实例之引用所在的位置,就可各组件间相互操作。譬如,我们需要从Window的实例中获取GridPanel的引用,你可以从组件管理器中获取组件的引用,免于查找那个Window实例的变量。

虽然Ext.getCmp看起来优点不少,但我建议你谨慎使用和避免过于滥用。事因这样会强制将几个语义上不同的几个类捆绑在一起,组合成一个比较“笼统”的类。如在标准的面向对象的实践中或实现一个观察者模式的时候,采用Ext.getCmp作为一种设计的方案就不太适宜了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值