Extjs handler與listener的區別

2021-07-02 14:44:21 字數 1419 閱讀 9301

extjs裡handler和listener都是用來對使用者的某些輸入進行處理的,有必要區分一下各自都是怎麼用的。

handler

handler與action相關聯,乙個action可以有多個component引用;

action是乙個可被共享的物件,有五個主要的屬性:text, handler, iconcls, disabled, hidden

component的構建方式比較有意思:

new ext.button(action)

是button接收乙個action物件作為構造引數嗎?但是檢視button的api卻沒有發現action屬性。反而button的構造引數是乙個(object config),也就是說,只是乙個配置物件(包含各種屬性),而action的五個屬性正好button也都有,所以,可以接收乙個action來進行構造。

其他屬性不考慮,看handler,button中的handler配置項文件說明,這個handler是與click event關聯的。也就是說,click是button這個component的首要event(參考action中handler的文件),這就是handler的執行方式:被某個元件的首要event所觸發

listener

上面說了handler是對首要event的響應函式,而關於event, observable才是根源。

ext.util.observable是一切可進行事件監測之物件的父類(或者介面)。observable只有乙個配置項,那就是listeners,而乙個listener是乙個事件名 + 處理函式的組合,如:

"click" : function(), "mouseover" : function()

observable還提供了很多相關的處理事件的方法,比如新增事件,觸發事件,移除***等等。

由上分析可以總結一下:

1、handler是乙個特殊的listener;

2、handler是乙個函式,而listener是3、handler與action相關,用來讓多個元件共享乙個action。而listener與event相關,可以對event進行方便的管理;

但是handler與普通的event + listener組合還是有一些不同,乙個例子就是,如果用

ext.util.observable.capture(button, function(name))

來事先捕獲click事件,並阻止click時,如果button的click是通過handler來響應的,則capture的return false函式無效,而如果button是定義了包含click事件的listener,則上面的capture生效。

---------------------------------參考資料--------------------------------------------

1.

PCIE switch與device不link問題

pcie鏈路在沒有link之前tx會傳送detect訊號,當link之後就不再傳送。所以,首先使用示波器測量pcie switch和device的pcie tx端,檢視是否有detect訊號發出,經多次測量沒有抓到device的detect波形,能夠抓到pcie switch的detect波形。下圖...

SpringBoot的Full模式與Lite模式

configuration這個註解相信大家都不陌生,配置類註解。在springboot2中,configuration中可以如下使用 configuration proxybeanmethods false 告訴springboot這是乙個配置類 配置檔案 public class myconfig...

windows遠端ssh與scp操作linux

1 安裝winscp與putty,兩個要放在乙個目錄下。前者負責scp,後者負責ssh。2 winscp使用方法一目了然 3 putty輸入 顯示中文需要進行設定。a 把伺服器端預設編碼改為gb2312。以下是偶的linux端 etc sysconfig i18n lang zh cn.gb1803...