uni.$emit和$emit的区别
时间: 2023-11-28 10:45:08 浏览: 97
解决vue bus.$emit触发第一次$on监听不到问题
5星 · 资源好评率100%
uni.$emit和this.$emit的作用是相同的,都是用于触发自定义事件。它们的区别在于使用场景不同。uni.$emit是在非Vue组件中使用的,而this.$emit是在Vue组件中使用的。在Vue组件中,可以使用this.$emit来触发自定义事件,并且可以在父组件中使用v-on来监听这个事件。而在非Vue组件中,可以使用uni.$emit来触发自定义事件,并且可以在其他非Vue组件中使用uni.$on来监听这个事件。
举个例子,假设我们有两个页面A和B,现在需要在A页面中触发一个自定义事件,并将数据传递给B页面。可以在A页面中使用uni.$emit来触发这个事件,并在B页面中使用uni.$on来监听这个事件并获取数据。
以下是一个示例代码:
在A页面中触发自定义事件并传递数据:
```javascript
uni.$emit('add', {listData: [1, 2, 3]});
```
在B页面中监听自定义事件并获取数据:
```javascript
uni.$on('add', function(res) {
console.log(res.listData); // 输出:[1, 2, 3]
});
```
阅读全文