【问题标题】:Ext.getCmp(id) or Ext.ComponentQuery.query(attribute)Ext.getCmp(id) 或 Ext.ComponentQuery.query(attribute)
【发布时间】:2013-07-26 02:12:44
【问题描述】:

我是 Extjs 的新手,正在使用 Extjs v4.2.0。

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

哪个更好用,速度更快?

【问题讨论】:

  • 专注于“更好”,只有当你正在做的事情被证明很慢时才担心“更快”

标签: extjs extjs4.2


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-28
      • 2012-08-06
      • 2011-10-16
      • 1970-01-01
      • 1970-01-01
      • 2012-07-13
      • 2012-06-19
      • 1970-01-01
      相关资源
      最近更新 更多