Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我是 Extjs 的新手并使用 Extjs v4.2.0。
要查找对象,我可以使用Ext.getCmp(id)或Ext.ComponentQuery.query(attribute)。
Ext.getCmp(id)
Ext.ComponentQuery.query(attribute)
哪一个更好用和更快?
最好避免直接使用这两者中的任何一个。Ext.getCmp特别被认为是不好的“代码气味”。您应该努力以不需要它们的方式组织您的代码。
Ext.getCmp
组件查询很优雅,但您应该从父容器(从而减少研究树并允许您利用 relative itemId)或从控制器使用它们。我猜控制器是组件查询被添加到 Ext4 的真正原因。
itemId
getCmp会更快,因为它是一个简单的哈希查找。当您使用query时,它必须解析然后执行查询,因此仅对于简单的 idgetCmp更好。
getCmp
query
但是,请注意使用 id,因为它们需要是全局唯一的。只有在您知道只有一个的情况下才使用它们是一个好主意,例如登录窗口或您的主应用程序容器。