-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
微信小程序自定义事件
小程序中跨页面数据传递
event.js
var events = {};
//监听
function on(name, self, callback) {
var tuple = [self, callback];
var callbacks = events[name];
if (Array.isArray(callbacks)) {
callbacks.push(tuple);
}
else {
events[name] = [tuple];
}
}
//移除
function remove(name, self) {
var callbacks = events[name];
if (Array.isArray(callbacks)) {
events[name] = callbacks.filter((tuple) => {
return tuple[0] != self;
})
}
}
//注册
function emit(name, data) {
var callbacks = events[name];
if (Array.isArray(callbacks)) {
callbacks.map((tuple) => {
var self = tuple[0];
var callback = tuple[1];
callback.call(self, data);
})
}
}
events.on = on;
events.remove = remove;
events.emit = emit;
export default events;
使用
import event from './utils/event.js'
/**
* 接收事件
* msgChange 事件名称
* this 当前视图
* data 事件参数
*/
event.on('msgChange', this, data => {
//收到事件
})
//发送事件
event.emit('msgChange', 'msgChange');
//移除事件
event.remove('msgChange', this)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels