uni-app 中uni.$emit 和 uni.$on
时间: 2024-02-11 08:00:45 浏览: 141
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-app里的uni.$on()是什么方法
`uni.$on()`是uni-app框架中的一个事件监听方法,用于在全局或组件内监听自定义事件。具体来说,它的作用是注册一个事件监听器,当事件触发时执行回调函数。
其语法如下:
```
uni.$on(event, callback)
```
其中,`event`是要监听的事件名,`callback`是事件触发时要执行的回调函数。
该方法返回一个取消监听的函数,可以用于取消事件的监听。
举个例子,如果要全局监听一个名为`my-event`的事件,可以在`App.vue`中使用以下代码:
```
uni.$on('my-event', function (data) {
console.log('my-event触发了,携带的数据为:', data)
})
```
然后,在任何页面或组件中触发该事件时,上述回调函数都会被执行。例如,在某个页面中:
```
uni.$emit('my-event', {name: '张三', age: 18})
```
这样就可以触发`my-event`事件,并将`{name: '张三', age: 18}`作为参数传递给事件监听器,从而实现全局通信。
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"
});
```
阅读全文