浏览 2939 次
锁定老帖子 主题:组件的管理与XType
精华帖 (1) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-02-18
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作为一种设计的方案就不太适宜了。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |