Vueのパッケージイベント機能

/ *
事件池
eventList = {
ハンドル:[FN1、FN2、FN3]
ABC:[FN1、FN2、FN3]
}
||
eventList = {

}

(eventNameの、コールバック)上の$
配列として値を作成するために存在しない場合、イベントの現在の名前が存在するかを決定するためには、キーイベント名の値である
コールバックがアレイに押し込み

イベント名は、直接に配列に追加存在する場合


$(eventNameの、[paramsは])を発します

イベントの現在の名前は、それが配列を通じて存在する場合は、すべての機能を取得し、実行し、そこにあるかどうかを判断します。その後のparamsに関数に渡される引数として


$オフ(eventNameの、[コールバック])


アレイ中で除去し、次いで機能に関して指数を見つけ、することがある場合、2番目の引数が存在するかどうかを決定するために存在し続ける場合、存在するか否かを決定するために、イベントの現在の名前
、それは全体のアレイが存在しないクリアされた場合
* /

CONST eventList = {}


=(eventNameの、コールバック)=> {上のconst $
(もし!eventList [eventNameの]){
eventList [eventNameの] = [];
}
eventList [eventNameの] .push(コールバック)
}

 

$ EMIT =一定(eventNameの、paramsは)=> {
IF(EventList [eventNameの]){
LET ARR = EventList [eventNameの];
arr.map((CB)=> {// CBは、アレイ機能のそれぞれに横断されますマップアイテム返され
CB(paramsはします);
})
}

}

CONSTは=(eventNameの、コールバック)=オフ$> {
IF(eventList [eventNameの]){
IF(コールバック){
インデックス= eventList [eventNameの】.indexOf(コールバック)させ、
eventList [eventNameの】.splice(インデックス1)。
}他{
eventList [eventNameの】.LENGTH = 0。
}
}
}


関数FN1(ヴァル){
にconsole.log(111、ヴァル)
}

関数FN2(ヴァル){
にconsole.log(222、ヴァル)
}

関数FN3(ヴァル){
にconsole.log(333、ヴァル)
}

 

$上( "ハンドル"、FN1)
$上( "ハンドル"、FN2)
$上( "ハンドル"、FN3)
$オフ( "ハンドル"、FN1)
$発する( "ハンドル"、 "ABC")

おすすめ

転載: www.cnblogs.com/superclound/p/11247680.html