this.$bus.$emit
时间: 2023-10-28 10:52:19 浏览: 90
这是 Vue.js 中使用 EventBus (事件总线) 实现组件间通信的方式之一。`$bus` 是在 Vue 根实例中创建的 EventBus 对象,通过 `$emit` 方法可以向所有监听该事件的组件广播消息。
例如,假设我们在组件 A 中需要向组件 B 发送消息,可以在组件 A 中使用 `$bus.$emit('event-name', data)` 发送消息,然后在组件 B 中使用 `$bus.$on('event-name', (data) => { // do something with data })` 监听该事件并处理接收到的消息。
需要注意的是,使用 EventBus 可能会导致组件之间的耦合度增加,建议在必要的情况下使用,避免滥用。
相关问题
this.$bus.$emit 参数
this.$bus.$emit 是 Vue.js 中用于触发事件的方法,它有两个参数。
第一个参数是事件名称,可以是一个字符串或者一个数组。当参数为数组时,会依次触发数组中的每个事件。
第二个参数是要传递给事件处理函数的数据。它可以是任意类型的数据,如字符串、数字、对象等。
使用 this.$bus.$emit 方法可以在当前组件中触发已注册的事件,并传递相应的数据给事件处理函数。其他组件可以通过监听相同的事件名称,在接收到事件时执行相应的逻辑。
this.$bus.$emit+
这是一个 Vue.js 中的事件总线的用法。`.$bus` 是一个 Vue 实例,通过 `$emit` 方法触发自定义事件。`$emit` 接受两个参数:第一个参数是事件名称,第二个参数是要传递的数据。例如:
```javascript
// 组件 A
this.$bus.$emit('myEvent', 'Hello, world!');
// 组件 B
this.$bus.$on('myEvent', (message) => {
console.log(message); // 输出:Hello, world!
});
```
这样,组件 A 触发了名为 `myEvent` 的事件,并传递了一个字符串数据 `'Hello, world!'`。组件 B 监听到 `myEvent` 事件后,输出了接收到的消息。
阅读全文