为什么 Ext.getCmp 是一种不好的做法?所有场景都可以用itemId代替吗?
Why Ext.getCmp is a bad practice? Can be replaced with itemId in all scenarios?
我使用 ExtJS 有一段时间了,在实例化组件时总是使用“Ext.getCmp”,但大多数时候我读到这是一个不好的做法,应该使用“itemId”代替,所以我想知道为什么“itemId”比“Ext.getCmp”好,以及是否可以始终使用。
此外,我还遇到过无法(或不知道如何)使用“itemId”的示例。
例子:
我可以使用“Ext.getCmp”设置按钮的禁用 属性:
Ext.getCmp('btnMyButton').setDisabled(true);
但是使用“itemId”时出现错误:“对象引用未设置为对象的实例”
btnMyButton.setDisabled(true);
您必须通过项目 ID 获取按钮元素,然后调用 setDisabled。
Ext.ComponentQuery.query('#btnMyButton').setDisabled(true);
您可以参考下文 link 以了解更多关于 id 与 itemId 的信息
我使用 ExtJS 有一段时间了,在实例化组件时总是使用“Ext.getCmp”,但大多数时候我读到这是一个不好的做法,应该使用“itemId”代替,所以我想知道为什么“itemId”比“Ext.getCmp”好,以及是否可以始终使用。 此外,我还遇到过无法(或不知道如何)使用“itemId”的示例。 例子: 我可以使用“Ext.getCmp”设置按钮的禁用 属性:
Ext.getCmp('btnMyButton').setDisabled(true);
但是使用“itemId”时出现错误:“对象引用未设置为对象的实例”
btnMyButton.setDisabled(true);
您必须通过项目 ID 获取按钮元素,然后调用 setDisabled。
Ext.ComponentQuery.query('#btnMyButton').setDisabled(true);
您可以参考下文 link 以了解更多关于 id 与 itemId 的信息