爲了方便表示或是指定一個組件的名稱,我們通常會使用id或者itemId進行標識命名。(推薦儘量使用itemId,這樣可以減少頁面唯一標識而產生的衝突)
id:
id是作爲整個頁面的Component的唯一標識,這也意味着在整個頁面中只允許有唯一一個名稱的id,同時這裏的Component的id也將變爲element中的id,所以如果出現了兩個,頁面將會出現崩塌變形等等不可以想象的問題。
而作爲一個組件是必須有自己的唯一標識(id)的,在沒有設置Component的id的時候系統將自動爲組件添加id
itemId:
itemId是用於container底下的元件的,這也說明itemId只是一個局部的元件標識名稱,在全局上是不需要遵循唯一性的。
從上面的敘述中可以看出一些使用上需注意的地方
若你要取得相關的Component 若是屬於container 請設置id
若是隻屬於某個container 底下的元件,請設置itemId;某些情況下當然你也可以連同id 一起設置,比如需要改變css style,除此之外itmeid 還是優先的選擇
getCmp 以及getComponent 是不一樣的,使用上必須注意,必須搭配id 以及itemid 使用
如此一來id 與itemid 就會有從屬關係,非必要不需定義id,也不會造成在定義id 時需要編碼避免重覆,而因爲itemid 是屬於某個id 底下的,所以即使itemid 重覆,也可以利用唯一的id 利用Ext.getCmp 取得參照後,在接着使用getComponent 取得所屬itemId 的參照。
怎麼獲取id和itemId的組件和元件(從以上可以明顯的看出,itemId是個局部的元件名稱):
id: Ext.getCmp(id);
itemId:Ext.getCmp(id).getComponent(itemId);