1

我是 Extjs 的新手并使用 Extjs v4.2.0。

要查找对象,我可以使用Ext.getCmp(id)Ext.ComponentQuery.query(attribute)

哪一个更好用和更快?

4

2 回答 2

6

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

组件查询很优雅,但您应该从父容器(从而减少研究树并允许您利用 relative itemId)或从控制器使用它们。我猜控制器是组件查询被添加到 Ext4 的真正原因。

于 2013-07-26T02:29:22.800 回答
3

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

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

于 2013-07-26T02:23:43.717 回答