vue 使用bus实现组件间(如:兄弟组件)传递事件

5 篇文章 1 订阅

例如兄弟组件A和组件B,B要调用A的某个事件

一、新建bus.js,并引用

/**bus.js**/
import Vue from 'vue'
const bus = new Vue()
export default bus

bus.js我放在src/assets/utils路径下面

二、在B组件页面里

// 引入 bus.js
import bus from '@/assets/utils/bus'

// 通过$emit() 传递事件
bus.$emit('showTime')  // showTime改为你自己的

三、在A组件页面 mounted()内接收

// 引入 bus.js
import bus from '@/assets/utils/bus'

mounted () {
    bus.$on('showTime', res => {
      // this.showTime = true // 进行你要的操作
    })
  }

四、注册的总线事件(Bus)要在组件销毁时(beforeDestroy/destroyed)卸载,否则会多次挂载,造成触发一次但多个响应的情况

beforedestroy () {
    bus.$off('showTime')
  }
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值