小程序父孙组件 孙触发事件传递给父组件 简单eventBus
2021/10/6 14:10:58
本文主要是介绍小程序父孙组件 孙触发事件传递给父组件 简单eventBus,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
小程序父孙组件 孙触发事件传递给父组件 简单eventBus
- 环境:
ts
WeappEventBus.ts:事件公交回调类
interface CallBackObj { [index:string]: Function } class EventBus { private eventObj: CallBackObj = {} constructor() { console.log('event bus initing ...'); } /** * 创建回调函数, 同名会覆盖, {key: callback}必须都传 */ on(key: string, callback: Function): void { if(!(key && callback)) return; this.eventObj[key] = callback; } /** * 触发指定回调 */ emit(key: string, params: Array<any>): void { if (!key) return; this.eventObj[key](params); // 调用对象存储的方法并传参 } /** * 移除回调 * @param key * @returns */ remove(key: string): void { if (!key || !this.eventObj[key]) return; delete this.eventObj[key]; } } const eventBus = new EventBus; export { eventBus }
app.ts引入
// app.ts import { eventBus } from './utils/weappEventBus'; App<IAppOption>({ globalData: { bus: null }, onLaunch() { this.globalData.bus = eventBus; this.globalData.bus.on('xxx',(params: Array<any>) => { console.log(params); }) } })
孙组件.ts:模拟网络请求后孙组件传递事件给父组件
created(): void { setTimeout(() => { BUS.emit('xxx', { name: 'bill', age: 21 }); }, 1000); } pageLifetimes: { hide: function() { BUS.remove('xxx'); }, }
- 效果
这篇关于小程序父孙组件 孙触发事件传递给父组件 简单eventBus的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-13微信小程序如何封装接口域名?-icode9专业技术文章分享
- 2024-11-13如何在微信小程序中实现直传功能?-icode9专业技术文章分享
- 2024-11-13如何在小程序的地图组件中添加标记和文字?-icode9专业技术文章分享
- 2024-11-13在微信小程序的地图组件中如何实现自定义标记和气泡?-icode9专业技术文章分享
- 2024-11-01微信小程序教程:零基础入门到实战
- 2024-11-01微信小程序全栈教程:从入门到实践
- 2024-10-31微信小程序怎么实现关注公众号功能-icode9专业技术文章分享
- 2024-10-30微信小程序cover-view,支持bindtap吗-icode9专业技术文章分享
- 2024-10-30微信小程序的cover-image支持bindtap吗-icode9专业技术文章分享
- 2024-10-30微信小程序web-view怎么设置高度?-icode9专业技术文章分享