我是Extjs的新手并使用Extjs v4.2.0。要查找对象,我可以使用Ext.getCmp(id)或Ext.ComponentQuery.query(属性)。哪个更好用,速度更快?
答案 0 :(得分:6)
最好是避免直接使用这两个中的任何一个。 Ext.getCmp
特别被认为是“代码异味”。您应该努力以不需要它们的方式组织代码。
组件查询很优雅,但您应该使用parent container(从而减少研究树并允许您利用相对itemId
)或controller。我猜测控制器是将组件查询添加到Ext4的真正原因。
答案 1 :(得分:3)
getCmp
会更快,因为它是一个简单的哈希查找。当您使用query
时,它必须解析然后执行查询,因此仅对于简单的ID,getCmp
更好。
但是,要小心使用id,因为它们需要全局唯一。在您知道只有一个(例如登录窗口)或主应用程序容器的情况下使用它们是个好主意。