Extjs 从getCmp迁移

Extjs 从getCmp迁移,extjs,Extjs,在我的应用程序中,只要有可能,我就使用getCmp,但现在我想从这种糟糕的编程风格迁移到引用元素的更好方式。想象一下,我现在有一个itemId设置为“myitemId”的元素,我想从脚本的任何部分引用它,我不想使用up或down方法,因为我想用一种统一的方式引用元素,比如Ext.getCmp。我尝试使用Ext.ComponentQuery.query(“myitemId”)和Ext.query(“myitemId”)作为Ext.getCmp(“myitemId”)的替代方案,但没有成功。那么,应

在我的应用程序中,只要有可能,我就使用
getCmp
,但现在我想从这种糟糕的编程风格迁移到引用元素的更好方式。想象一下,我现在有一个
itemId
设置为“myitemId”的元素,我想从脚本的任何部分引用它,我不想使用
up
down
方法,因为我想用一种统一的方式引用元素,比如
Ext.getCmp
。我尝试使用
Ext.ComponentQuery.query(“myitemId”)
Ext.query(“myitemId”)
作为
Ext.getCmp(“myitemId”)
的替代方案,但没有成功。那么,应该使用什么样的方法和语法呢

编辑

Ext.ComponentQuery.query(“#myitemId”)
也不返回任何内容


另外,我使用extjs4.1来替换Ext.getCmp的正确语法是:
Ext.ComponentQuery.query('#myitemId')[0]

也就是说,简单地用Ext.ComponentQuery.query替换Ext.getCmp不会改进代码。事实上,这会使它变得更慢,因为Ext.getCmp进行简单而快速的哈希查找,而Ext.ComponentQuery.query每次都进行组件树遍历


你应该重新考虑整个方法。按id查找组件本身并不坏,但从长远来看,这会使代码更难维护。

它可以工作。至于速度,我主要在单步操作中使用Ext.getCmp,因此我几乎看不到任何区别。