从getCmp迁移

时间:2013-08-14 18:10:36

标签: extjs

我在我的应用程序中尽可能使用getCmp,但现在我想从这种糟糕的编程迁移到更好的引用元素的方式。想象一下,我现在有一个itemId设置为“myitemId”的元素,我想从脚本的任何部分引用它,我不想使用updown方法,因为我希望有一种统一的方式来引用像Ext.getCmp这样的元素。我尝试使用Ext.ComponentQuery.query("myitemId")Ext.query("#myitemId")作为Ext.getCmp("myitemId")的替代方案,但无济于事。那么,使用正确的方法和正确的语法是什么?

修改

Ext.ComponentQuery.query("#myitemId")也不会返回任何内容。

PS。我使用Extjs 4.1

1 个答案:

答案 0 :(得分:1)

替换Ext.getCmp的正确语法是:Ext.ComponentQuery.query('#myitemId')[0]

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

你应该重新考虑整个方法。按ID查找组件本身并不错,但从长远来看,这将使您的代码难以维护。