eventBus vue
时间: 2024-04-23 14:28:37 浏览: 112
EventBus是Vue.js中的一个事件总线,用于在组件之间进行通信。在使用EventBus之前,需要先初始化一个EventBus实例。
有两种初始化EventBus的方法,第一种是在全局初始化中创建一个Vue实例作为全局事件总线,可以通过import Vue from 'vue'来引入Vue,并创建一个全局的EventBus实例。例如:
```javascript
import Vue from 'vue'
const EventBus = new Vue()
```
第二种方法是在已经创建好的Vue实例原型中创建一个EventBus,可以通过Vue.prototype来扩展Vue实例的原型。例如:
```javascript
Vue.prototype.$EventBus = new Vue()
```
在接收方组件中,可以通过EventBus.$on()方法订阅自定义事件,并在回调函数中处理事件的响应。例如:
```javascript
import EventBus from '@/path/to/EventBus.js'
mounted() {
EventBus.$on('my-event', this.handleMyEvent)
},
methods: {
handleMyEvent(msg) {
console.log(msg)
}
}
```
在发送方组件中,可以通过this.$emit()方法触发一个自定义事件,并将需要传递的数据作为参数传递。例如:
```javascript
import EventBus from '@/path/to/EventBus.js'
methods: {
handleClick() {
EventBus.$emit('my-event', 'hello from sender')
}
}
```
通过以上方式,可以在Vue组件之间实现事件的发布与订阅,实现组件之间的通信。
#### 引用[.reference_title]
- *1* [vue 事件总线EventBus的概念、使用以及注意点](https://blog.csdn.net/aaaa123456789111/article/details/125873671)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* *3* [Vue中的Event Bus](https://blog.csdn.net/AlegFox/article/details/130282307)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文