Vue-全局事件总线

组件间通信之任意组件通信(全局事件总线)

  1. 首先先有个x组件能让所有组件都能够访问得到

    • 思路:

    • 1.可以直接将需要全局访问的内容放在windows上,但是不推荐使用

    • 2.由于当每创建一个子组件时,都会生成一个全新的 Vuecomponent 所有这个x不能给Vuecomponen

    • 3.所以需要在vue的实例对象上添加vue.prototype原型,其他任何组件才可以访问到原型里的内容

    • 1>如何添加?

      (1)在创建vue后还未开始渲染页面的生命周期钩子:beforecreate钩子里放一个原型指向它本身的

      new Vue({
      
      •     el: '#app',
            render: h => h(App),
            beforeCreate(){
                     x就是$bus
                Vue.prototype.$bus = this
            },
        })

    • 当自定义事件不再使用的时候,我们需要将此自定义事件销毁

      beforeDestroy(){
           this.$bus.$off('自定义事件名')
      }

      绑定自定义属性( 这里必须要在mounted钩子里绑定 )

      methods: {
             removes(){ 
          },
          mounted() {
            // 绑定自定义属性
            this.$bus.$on('removes',this.回调函数)
          },

      触发自定义事件

      this.$bus.$emit('需要触发的事件名',数据)

      总结:给vue实例对象绑定原型对象$bus ; 利用这个bus就可以实现任何在App组件下的通信

      $bus

      $bus.$on

      $bus.$emit

       
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值