如何在uniapp添加多个uni.$emit和uni.$on
时间: 2025-02-23 17:35:29 浏览: 53
在 UniApp 中,`uni.$emit` 和 `uni.$on` 是用于组件间通信的重要工具。如果你想在同一组件内添加多个 `uni.$emit` 和 `uni.$on` 对象,可以按照以下步骤操作:
1. **uni.$emit**:这个方法用于向其他组件或事件总线发送自定义事件。例如,你可以创建一个数组来存储需要触发的不同事件:
```javascript
const emitEvents = [
{
event: 'customEvent1',
data: { key1: 'value1' },
},
{
event: 'customEvent2',
data: { key2: 'value2' },
}
];
for (let i = 0; i < emitEvents.length; i++) {
uni.$emit(emitEvents[i].event, emitEvents[i].data);
}
```
2. **uni.$on**:你需要在相应的地方注册监听这些事件,通常是在生命周期钩子函数如 `created`, `mounted`, 或者自定义的方法中:
```javascript
// 可能在一个父组件或者全局事件处理器中
this.$once('update:model', () => {
for (let i = 0; i < emitEvents.length; i++) {
uni.$on(emitEvents[i].event, this.handleCustomEvent.bind(this));
}
});
handleCustomEvent(event, data) {
console.log(`Received event ${event} with data:`, data);
}
// 如果你想取消所有事件监听,可以在适当的时候这样做
this.$off();
```
阅读全文
相关推荐


















