Ext.getCmp(id)或Ext.ComponentQuery.query(属性)

时间:2013-07-26 02:12:45

标签: extjs extjs4.2

我是Extjs的新手并使用Extjs v4.2.0。要查找对象,我可以使用Ext.getCmp(id)或Ext.ComponentQuery.query(属性)。哪个更好用,速度更快?

2 个答案:

答案 0 :(得分:6)

最好是避免直接使用这两个中的任何一个。 Ext.getCmp特别被认为是“代码异味”。您应该努力以不需要它们的方式组织代码。

组件查询很优雅,但您应该使用parent container(从而减少研究树并允许您利用相对itemId)或controller。我猜测控制器是将组件查询添加到Ext4的真正原因。

答案 1 :(得分:3)

getCmp会更快,因为它是一个简单的哈希查找。当您使用query时,它必须解析然后执行查询,因此仅对于简单的ID,getCmp更好。

但是,要小心使用id,因为它们需要全局唯一。在您知道只有一个(例如登录窗口)或主应用程序容器的情况下使用它们是个好主意。