1. 程式人生 > >自定義非父子組件傳值

自定義非父子組件傳值

每一個 lba default kit ons urn 保存 map efault

const center = {};
center.on = function(eventName, callback){ if(!center[eventName]){ center[eventName] = []; } //保存回調函數 center[eventName].push(callback); }
center.emit = function(eventName, params){ //取出對應事件的回調函數 let callbackArr = center[eventName]; //一一調用每一個回調事件 callbackArr.map((callback)=>{ callback(params); }) }

center.off = function(eventName, callback){ //情況1:只傳eventName,移除所有事件 //情況2:傳eventName和callback if(!callback){ center[eventName] = null; } else{ let callbackArr = center[eventName]; //刪除指定的callback回調 let result = callbackArr.filter(callbackItem=>{ if(callback == callbackItem){ return false; } else{ return true; } }) //重新賦值 center[eventName] = result;
} }
export default center;

自定義非父子組件傳值