Exp*_* be 26 javascript extjs extjs4 extjs4.1
我很困惑我需要在up()down()和Ext.getCmp(ID)之间使用哪一个grep对象.
对我来说,定义ID以通过Ext.getCmp('ID')对象和检索对象更容易,并且代码看起来更干净.
例如:
console.log(this.up('panel').up('panel').down('grid'));
console.log(Ext.getCmp('myPanel'));
Run Code Online (Sandbox Code Playgroud)
哪一个更适合表现?
dbr*_*rin 34
使用ID和getCmp来查找组件存在严重问题.主要问题是您无法安全地重用组件,因为在大多数情况下,标记将创建具有重复ID的HTML元素,这是无效的HTML.此外,当您有两个具有相同ID的组件时,您将遇到难以跟踪的意外行为,因为框架无法获得对组件的正确引用.
这里有几个博客和论坛帖子,以及J. Garcia关于这个主题的视频.建议的使用getCmp的方法仅用于调试,切换到生产就绪代码的其他方法(up,down,refs,itemId和ComponentQuery).
Izh*_*aki 15
Ext.getCmp() 在内部使用哈希映射,因此它快速点亮,几乎与基于键检索数组中的值一样快.
.up()并down()使用组件层次结构的遍历来实现,这是一个较慢的过程.
但是up()并down()使用选择器,因此他们也可以选择类,而不仅仅是ID.
您只需要记住您可能想要使用的各种情况,up()或者down(),如果存在多个控件的公共处理程序,或者您所使用的组件是由框架自动生成的,那么您就无法给它一个自己.