【发布时间】:2016-12-15 10:27:15
【问题描述】:
我仍在尝试理解 refs 在 Extjs 中的意义。关于这个主题的文档似乎非常缺乏。
Refs 应该让生活更轻松,但我发现事实恰恰相反,我想知道是不是因为我没有充分利用它们。
如果我在控制器中使用 ref 作为组合,我可能会有这样的代码:
refs: [{
ref: 'maritalStatusCombo',
selector: 'combo[name="maritalstatus"]',
}]
myFunction: function () {
var comp = this.getMaritalStatusCombo();
}
但是我可以像这样轻松编写代码:
var maritalStatusComboSelector = 'combo[name="maritalstatus"]'
myFunction: function () {
var comp = Ext.ComponentQuery.query(maritalStatusComboSelector)
}
第二个版本使用更少的文字(..我认为),并且更易于理解 IMO。
我的 IDE 也更好地理解了第二个。
如果我在选择器字符串上选择 'navigate to..',它会将我直接带到顶部的声明。在第一个示例中,'navigate to..' getMaritalStatusCombo() 函数不会带我去任何地方。
裁判应该如何让生活更轻松?
【问题讨论】:
-
它们在 Ext4 中有一些优点,可以避免重复/多次指定选择器 - 但值得注意的是
refs在 Ext5 及更高版本中的ViewControllers上不存在 - 它们使用不同的类型参考(和常规控制器往往最终不被用于“查看”相关的东西)。关键是,就升级框架而言,采用refs并没有真正的优势——所以如果它们不适合你,忽略它们也没有什么坏处。