vue2全局事件总线中如何使用$emit接受对象
时间: 2024-05-04 12:16:44 浏览: 181
在Vue2的全局事件总线中,可以使用 `$emit` 方法触发一个事件,并通过 `$on` 方法来监听该事件。在事件的回调函数中,可以接收传递过来的对象作为参数。
以下是一个示例代码:
```javascript
// 在组件中触发事件
this.$emit('my-event', { name: '张三', age: 20 });
// 在另一个组件中监听事件
created() {
// 监听 my-event 事件
this.$root.$on('my-event', this.handleMyEvent);
},
methods: {
handleMyEvent(data) {
console.log(data); // { name: '张三', age: 20 }
}
}
```
在上面的示例中,我们在一个组件中触发了 `my-event` 事件,并传递了一个对象作为参数。在另一个组件中,我们通过 `$on` 方法监听了该事件,并在回调函数中接收了传递过来的对象作为参数。
相关问题
vue3 事件总线 $on $emit
Vue 3 中事件总线的实现与 Vue 2 中的略有不同,Vue 3 中使用了一个新的 API `createApp` 来创建应用实例,并且将事件总线的实现抽象成了一个单独的模块 `mitt`。
要使用事件总线,在组件中需要先导入 `mitt` 模块:
```javascript
import mitt from 'mitt';
```
然后在组件中创建一个事件总线实例:
```javascript
const emitter = mitt();
```
在需要向其他组件中发送事件的地方,可以使用 `$emit` 方法:
```javascript
emitter.emit('eventName', data);
```
在需要监听事件的组件中,可以使用 `$on` 方法来监听事件:
```javascript
emitter.on('eventName', (data) => {
// 处理事件
});
```
需要注意的是,事件总线是一个全局实例,可以在不同的组件中使用。但是在使用时,需要先导入 `mitt` 模块并创建一个新的实例。
vue2全局事件总线$bus
Vue 2 中的全局事件总线 $bus 是一种用于在组件之间进行通信的机制。它基于 Vue 实例的事件系统,在任何地方都可以使用。
要使用 $bus,您需要创建一个新的 Vue 实例并将其作为全局事件总线。在创建这个实例后,您可以使用 $emit 方法触发一个事件,然后使用 $on 方法在其他组件中监听该事件。
下面是一个使用 $bus 的示例:
```javascript
// main.js
阅读全文
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)