如何在vue中使用bus
时间: 2023-12-14 21:40:12 浏览: 98
vue-bus:vue使用高德地图搭建实时公交(地图+线路详情+换乘详情+附近站点+输入提示)
Vue中的`bus`可以用来在组件之间进行通信,具体实现如下:
1. 创建一个Vue实例作为`bus`,并将其导出
```javascript
import Vue from 'vue'
export const bus = new Vue()
```
2. 在需要通信的组件中引入`bus`,可以在`created`或`mounted`生命周期中监听事件并执行相关操作
```javascript
import { bus } from '@/utils/bus.js'
export default {
name: 'ComponentA',
created () {
bus.$on('eventA', this.handleEventA)
},
methods: {
handleEventA () {
// 处理事件
}
}
}
```
3. 在触发事件的组件中引入`bus`,触发事件
```javascript
import { bus } from '@/utils/bus.js'
export default {
name: 'ComponentB',
methods: {
handleClick () {
bus.$emit('eventA')
}
}
}
```
需要注意的是,`bus`是全局共享的,因此也可以在任何地方引入并使用。同时,需要在组件销毁时将事件监听取消,以避免内存泄漏。
```javascript
export default {
name: 'ComponentA',
created () {
bus.$on('eventA', this.handleEventA)
},
beforeDestroy () {
bus.$off('eventA', this.handleEventA)
},
methods: {
handleEventA () {
// 处理事件
}
}
}
```
阅读全文