uni-app 中uni.$emit 和 uni.$on
时间: 2024-02-11 13:00:45 浏览: 31
uni.$emit和uni.$on是uni-app中用于组件间通信的两个方法。其中,uni.$emit用于触发一个事件,并传递参数,而uni.$on则用于监听这个事件,并在事件触发时执行相应的回调函数。下面是一个示例代码:
```
// A页面
uni.$emit('eventName', {param: 'value'});
// B页面
uni.$on('eventName', function(data) {
console.log(data.param); // 输出'value'
});
```
需要注意的是,uni.$on必须在组件的生命周期函数中调用,否则可能会出现监听不到事件的情况。
相关问题
uni.$emit 和uni.$on
uni.$emit和uni.$on是uni-app框架中用于组件间通信的方法。
uni.$emit是在组件中触发自定义事件的方法。可以通过uni.$emit(eventName, data)来触发一个自定义事件,并且可以传递一些数据。其他组件可以通过uni.$on(eventName, callback)来监听该事件,并在事件触发时执行相应的回调函数。
例如,在组件A中使用uni.$emit触发一个自定义事件:
```javascript
uni.$emit('customEvent', { message: 'Hello' });
```
然后,在组件B中使用uni.$on来监听该事件,并执行回调函数:
```javascript
uni.$on('customEvent', (data) => {
console.log(data.message); // 输出:Hello
});
```
这样,在组件A触发customEvent事件时,组件B就能接收到该事件并执行相应的回调函数。
需要注意的是,使用uni.$emit和uni.$on进行组件间通信时,被监听的组件应该在合适的时机调用uni.$off(eventName)来取消对事件的监听,以避免内存泄漏。
uni.$emit 和 uni.$on
uni.$emit 和 uni.$on 是uni-app框架中用于组件间通信的两个方法。其中,uni.$emit 用于触发一个自定义事件,并传递参数;而 uni.$on 则用于监听一个自定义事件,并在事件触发时执行相应的回调函数。
举个例子,如果我们在组件 A 中触发一个名为 "myEvent" 的自定义事件,并传递一个参数 "hello",则可以这样写:
```
// 组件 A 中
uni.$emit('myEvent', 'hello');
```
而在组件 B 中监听这个事件,并在事件触发时执行相应的回调函数,则可以这样写:
```
// 组件 B 中
uni.$on('myEvent', (data) => {
console.log(data); // 输出 "hello"
});
```